{"id":"CVE-2026-113790","kind":"vulnerability","aliases":["CVE-2026-113790","GHSA-f54x-cmq8-qg57"],"related":[],"title":"pypdf: Possible large memory usage when parsing arrays and dictionaries","description":"### Impact\n\nAn attacker who uses this vulnerability can craft a PDF which leads to large memory usage. This requires parsing arrays and/or dictionaries with lots of elements.\n\n### Patches\n\nThis has been fixed in [pypdf==6.21.0](https://github.com/py-pdf/pypdf/releases/tag/6.21.0).\n\n### Workarounds\n\nIf you cannot upgrade yet, consider applying the changes from PR [#4218](https://github.com/py-pdf/pypdf/pull/4218).","summary":"pypdf versions before 6.21.0 can use large amounts of memory when parsing a crafted PDF with arrays or dictionaries containing many elements. An attacker who supplies such a PDF can exhaust memory and cause a denial of service in the process parsing it.","severity":"medium","cvss":6.0,"epss":0.003169999923557043,"exploited":false,"exploited_at":null,"products":[{"name":"pypdf","fixed":["6.21.0"],"affected":"< 6.21.0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["cwe-400","document-processing","package","pypdf","python"],"not_affected_if":["no-untrusted-pdf-input","pypdf-6.21.0-or-later"],"how_to_check":"pip show pypdf (or check the lockfile) and look for a version below 6.21.0","fix":"Upgrade pypdf to 6.21.0 or later.\nIf upgrading is not possible, apply the changes from PR #4218 in the pypdf repository.","status":"open","published_at":"2026-10-21T16:17:26+00:00","first_seen_at":"2026-10-23T19:11:31+00:00","triaged_at":"2026-10-23T20:06:34+00:00","updated_at":"2026-10-23T21:57:29+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T20:06:34Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade pypdf to 6.21.0 or later.\nIf upgrading is not possible, apply the changes from PR #4218 in the pypdf repository.","summary":"pypdf versions before 6.21.0 can use large amounts of memory when parsing a crafted PDF with arrays or dictionaries containing many elements. An attacker who supplies such a PDF can exhaust memory and cause a denial of service in the process parsing it.","category":"package","who_cares":["python","pypdf","document-processing"],"confidence":0.8,"analyst_note":"","how_to_check":"pip show pypdf (or check the lockfile) and look for a version below 6.21.0\nunknown","needs_analyst":false,"not_affected_if":["pypdf-6.21.0-or-later","no-untrusted-pdf-input"],"severity_if_unknown":"medium"},"cost_usd":0.000362,"input_tokens":2125,"output_tokens":298,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-113790':13A,21A '-2026':12A,20A '-400':24B '/py-pdf/pypdf/pull/4218).':126C '/py-pdf/pypdf/releases/tag/6.21.0).':110C '4218':123C '6.21.0':34B,107C 'amount':38B 'and/or':94C 'appli':118C 'array':8A,47B,93C 'attack':54B,75C 'cannot':114C 'caus':64B 'chang':120C 'cmq8':17A 'consid':117C 'contain':50B 'craft':44B,81C 'cve':11A,19A 'cwe':23B 'denial':66B 'dictionari':10A,49B,95C 'document':26B 'document-process':25B 'element':52B,99C 'exhaust':61B 'f54x':16A 'fix':104C 'ghsa':15A 'ghsa-f54x-cmq8-qg57':14A 'github.com':109C,125C 'github.com/py-pdf/pypdf/pull/4218).':124C 'github.com/py-pdf/pypdf/releases/tag/6.21.0).':108C 'impact':73C 'larg':3A,37B,87C 'lead':85C 'lot':97C 'mani':51B 'memori':4A,40B,62B,88C 'packag':28B 'pars':7A,42B,72B,92C 'patch':100C 'pdf':45B,59B,83C 'possibl':2A 'pr':122C 'process':27B,71B 'pypdf':1A,22A,29B,31B,106C 'python':30B 'qg57':18A 'requir':91C 'servic':68B 'suppli':56B 'upgrad':115C 'usag':5A,89C 'use':36B,77C 'version':32B 'vulner':79C 'workaround':111C 'yet':116C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T16:17:26+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-f54x-cmq8-qg57","url":"https://github.com/advisories/GHSA-f54x-cmq8-qg57","severity":"medium","published_at":"2026-10-22T16:49:40+00:00","modified_at":"2026-10-22T16:49:41+00:00","first_seen_at":"2026-10-23T19:11:31+00:00","fetched_at":"2026-10-23T19:11:31+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-113790","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-113790","severity":null,"published_at":"2026-10-21T16:17:26+00:00","modified_at":"2026-10-22T16:46:48+00:00","first_seen_at":"2026-10-23T21:57:29+00:00","fetched_at":"2026-10-23T22:29:01+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"}