{"id":"PYSEC-2026-1832","summary":"pypdf's LZWDecode streams be manipulated to exhaust RAM","details":"### Impact\n\nAn attacker who uses this vulnerability can craft a PDF which leads to a memory usage of up to 1 GB per stream. This requires parsing the content stream of a page using the LZWDecode filter.\n\nThis is a follow up to [GHSA-jfx9-29x2-rv3j](https://github.com/py-pdf/pypdf/security/advisories/GHSA-jfx9-29x2-rv3j) to align the default limit with the one for *zlib*.\n\n### Patches\nThis has been fixed in [pypdf==6.4.0](https://github.com/py-pdf/pypdf/releases/tag/6.4.0).\n\n### Workarounds\nIf users cannot upgrade yet, use the line below to overwrite the default in their code:\n\n```python\npypdf.filters.LZW_MAX_OUTPUT_LENGTH = 75_000_000\n```","aliases":["CVE-2025-66019","GHSA-m449-cwjh-6pw7"],"modified":"2026-07-07T17:47:36.701205664Z","published":"2026-07-07T16:03:10.809096Z","references":[{"type":"WEB","url":"https://github.com/py-pdf/pypdf/security/advisories/GHSA-jfx9-29x2-rv3j"},{"type":"WEB","url":"https://github.com/py-pdf/pypdf/security/advisories/GHSA-m449-cwjh-6pw7"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-66019"},{"type":"WEB","url":"https://github.com/py-pdf/pypdf/commit/96186725e5e6f237129a58a97cd19204a9ce40b2"},{"type":"WEB","url":"https://aydinnyunus.github.io/2025/12/20/cve-2025-66019-pypdf-lzw-dos"},{"type":"PACKAGE","url":"https://github.com/py-pdf/pypdf"},{"type":"WEB","url":"https://github.com/py-pdf/pypdf/releases/tag/6.4.0"},{"type":"PACKAGE","url":"https://pypi.org/project/pypdf"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-m449-cwjh-6pw7"}],"affected":[{"package":{"name":"pypdf","ecosystem":"PyPI","purl":"pkg:pypi/pypdf"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.4.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"],"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/pypdf/PYSEC-2026-1832.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:H/SC:N/SI:N/SA:N/E:U"}]}