{"id":"PYSEC-2026-1829","summary":"pypdf has possible long runtimes for missing /Root object with large /Size values","details":"### Impact\nAn attacker who exploits this vulnerability can craft a PDF which leads to possibly long runtimes for actually invalid files. This can be achieved by omitting the `/Root` entry in the trailer, while using a rather large `/Size` value. Only the non-strict reading mode is affected.\n\n### Patches\nThis has been fixed in [pypdf==6.6.0](https://github.com/py-pdf/pypdf/releases/tag/6.6.0).\n\n### Workarounds\n\n```python\nfrom pypdf import PdfReader, PdfWriter\n\n\n# Instead of\nreader = PdfReader(\"file.pdf\")\n# use the strict mode:\nreader = PdfReader(\"file.pdf\", strict=True)\n\n# Instead of\nwriter = PdfWriter(clone_from=\"file.pdf\")\n# use an explicit strict reader:\nwriter = PdfWriter(clone_from=PdfReader(\"file.pdf\", strict=True))\n```\n\n### Resources\nThis issue has been fixed in #3594.","aliases":["CVE-2026-22690","GHSA-4xc4-762w-m6cg"],"modified":"2026-07-07T17:46:16.612705513Z","published":"2026-07-07T16:03:17.493066Z","references":[{"type":"WEB","url":"https://github.com/py-pdf/pypdf/security/advisories/GHSA-4xc4-762w-m6cg"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-22690"},{"type":"WEB","url":"https://github.com/py-pdf/pypdf/pull/3594"},{"type":"WEB","url":"https://github.com/py-pdf/pypdf/commit/294165726b646bb7799be1cc787f593f2fdbcf45"},{"type":"PACKAGE","url":"https://github.com/py-pdf/pypdf"},{"type":"WEB","url":"https://github.com/py-pdf/pypdf/releases/tag/6.6.0"},{"type":"PACKAGE","url":"https://pypi.org/project/pypdf"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-4xc4-762w-m6cg"}],"affected":[{"package":{"name":"pypdf","ecosystem":"PyPI","purl":"pkg:pypi/pypdf"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.6.0"}]}],"versions":["1.0","1.1","1.10","1.11","1.12","1.13","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9","3.1.0","3.10.0","3.11.0","3.11.1","3.12.0","3.12.1","3.12.2","3.13.0","3.14.0","3.15.0","3.15.1","3.15.2","3.15.3","3.15.4","3.15.5","3.16.0","3.16.1","3.16.2","3.16.3","3.16.4","3.17.0","3.17.1","3.17.2","3.17.3","3.17.4","3.2.0","3.2.1","3.3.0","3.4.0","3.4.1","3.5.0","3.5.1","3.5.2","3.6.0","3.7.0","3.7.1","3.8.0","3.8.1","3.9.0","3.9.1","4.0.0","4.0.1","4.0.2","4.1.0","4.2.0","4.3.0","4.3.1","5.0.0","5.0.1","5.1.0","5.2.0","5.3.0","5.3.1","5.4.0","5.5.0","5.6.0","5.6.1","5.7.0","5.8.0","5.9.0","6.0.0","6.1.0","6.1.1","6.1.2","6.1.3","6.2.0","6.3.0","6.4.0","6.4.1","6.4.2","6.5.0"],"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/pypdf/PYSEC-2026-1829.yaml"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:U"}]}