{"id":"CVE-2022-0766","kind":"vulnerability","aliases":["CVE-2022-0766","GHSA-2647-c639-qv2j"],"related":[],"title":"Server-Side Request Forgery in calibreweb","description":"calibreweb prior to version 0.6.17 is vulnerable to server-side request forgery (SSRF). This is due to an incomplete fix for [CVE-2022-0339](https://github.com/advisories/GHSA-4w8p-x6g8-fv64). The blacklist does not check for `0.0.0.0`, which would result in a payload of `0.0.0.0` resolving to `localhost`.","summary":"calibreweb before 0.6.17 has an incomplete fix for an earlier SSRF bug: its blocklist does not catch 0.0.0.0, which resolves to localhost. An attacker can make the server send requests to internal services on its own machine.","severity":"critical","cvss":9.8,"epss":0.01315,"exploited":false,"exploited_at":null,"products":[{"name":"calibreweb","fixed":["0.6.17"],"affected":"< 0.6.17","ecosystem":"pypi"},{"name":"janeczku calibre-web","fixed":["0.6.17"],"affected":"< 0.6.17","ecosystem":"vendor"}],"ecosystems":["pypi","vendor"],"tags":["calibreweb","cwe-918","package","python","self-hosted"],"not_affected_if":["version-0.6.17-or-later"],"how_to_check":"- Run `pip show calibreweb` and compare the version with `0.6.17`\n- Check whether the instance can be reached by users who are not trusted, since the flaw is exploited through application features that fetch URLs","fix":"- Upgrade `calibreweb` to `0.6.17` or later\n- Until upgraded, block outbound requests from the server to `0.0.0.0` and localhost at the network level","status":"open","published_at":"2022-03-07T07:15:07+00:00","first_seen_at":"2026-10-27T15:13:25+00:00","triaged_at":"2026-10-27T15:14:39+00:00","updated_at":"2026-10-27T15:32:59+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-27T15:14:39Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade `calibreweb` to `0.6.17` or later\n- Until upgraded, block outbound requests from the server to `0.0.0.0` and localhost at the network level","reach":"network","title":"calibreweb: SSRF blacklist misses 0.0.0.0, letting requests reach localhost","impact":"medium","summary":"calibreweb before 0.6.17 has an incomplete fix for an earlier SSRF bug: its blocklist does not catch 0.0.0.0, which resolves to localhost. An attacker can make the server send requests to internal services on its own machine.","category":"package","nicknames":[],"who_cares":["calibreweb","python","self-hosted"],"confidence":0.8,"needs_auth":"unknown","worst_case":"server requests reach internal localhost services and their data","analyst_note":"","how_to_check":"- Run `pip show calibreweb` and compare the version with `0.6.17`\n- Check whether the instance can be reached by users who are not trusted, since the flaw is exploited through application features that fetch URLs","needs_analyst":false,"not_affected_if":["version-0.6.17-or-later"],"who_is_affected":"Instances running calibreweb below 0.6.17 that expose features which fetch remote URLs are exposed, because the SSRF blocklist was incomplete. Installs at 0.6.17 or later are not affected. The sources do not say whether authentication is required to reach the vulnerable feature.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000606,"input_tokens":3384,"output_tokens":536,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-0339':93C '-0766':10A,18A '-2022':9A,17A,92C '-2647':12A '-918':26B '/advisories/ghsa-4w8p-x6g8-fv64).':96C '0.0.0.0':49B,103C,111C '0.6.17':34B,73C 'attack':55B 'blacklist':98C 'blocklist':45B 'bug':43B 'c639':14A 'c639-qv2j':13A 'calibre':22A 'calibre-web':21A 'calibreweb':7A,19A,24B,32B,69C 'catch':48B 'check':101C 'cve':8A,16A,91C 'cwe':25B 'due':85C 'earlier':41B 'fix':38B,89C 'forgeri':5A,81C 'ghsa':11A 'github.com':95C 'github.com/advisories/ghsa-4w8p-x6g8-fv64).':94C 'host':31B 'incomplet':37B,88C 'intern':63B 'janeczku':20A 'localhost':53B,114C 'machin':68B 'make':57B 'packag':27B 'payload':109C 'prior':70C 'python':28B 'qv2j':15A 'request':4A,61B,80C 'resolv':51B,112C 'result':106C 'self':30B 'self-host':29B 'send':60B 'server':2A,59B,78C 'server-sid':1A,77C 'servic':64B 'side':3A,79C 'ssrf':42B,82C 'version':72C 'vulner':75C 'web':23A 'would':105C","nicknames":[],"mitigations":[],"who_affected":"Instances running calibreweb below 0.6.17 that expose features which fetch remote URLs are exposed, because the SSRF blocklist was incomplete. Installs at 0.6.17 or later are not affected. The sources do not say whether authentication is required to reach the vulnerable feature.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2022-03-07T07:15:07+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-2647-c639-qv2j","url":"https://github.com/advisories/GHSA-2647-c639-qv2j","severity":"critical","published_at":"2022-03-08T00:00:31+00:00","modified_at":"2026-10-27T15:12:11+00:00","first_seen_at":"2026-10-27T15:13:25+00:00","fetched_at":"2026-10-27T15:13:25+00:00","note":null},{"source":"nvd","external_id":"CVE-2022-0766","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-0766","severity":null,"published_at":"2022-03-07T07:15:07+00:00","modified_at":"2026-06-17T04:21:12+00:00","first_seen_at":"2026-10-27T15:32:59+00:00","fetched_at":"2026-10-27T15:32:59+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}