CVE-2026-27888: pypdf: Manipulated FlateDecode XFA streams can exhaust RAM
pypdf is a free and open-source pure-python PDF library. Prior to 6.7.3, an attacker who uses this vulnerability can craft a PDF which leads to the RAM being exhausted. This requires accessing the `xfa` property of a reader or writer and the corresponding stream being compressed using `/FlateDecode`. This has been fixed in pypdf 6.7.3. As a workaround, apply the patch manually.
Security readout for executives and security teams
Plain-English summary
A crafted PDF can make vulnerable pypdf applications run out of memory, but only when the application accesses XFA data and the XFA stream uses FlateDecode compression. This is a denial-of-service risk, not a data theft issue in the cited sources.
Executive priority
Prioritize remediation for internet-facing or automated document-processing systems. Business impact is service disruption from memory exhaustion, not confirmed compromise. Upgrade during the next normal security patch cycle unless exposed systems process untrusted PDFs at scale.
Technical view
CVE-2026-27888 is a CWE-400 resource exhaustion flaw in pypdf before 6.7.3. Manipulated FlateDecode-compressed XFA streams can exhaust RAM when reader or writer code accesses the xfa property. The advisory lists pypdf 6.7.3 as fixed and manual patching as a workaround.
Likely exposure
Exposure is most likely in Python services using pypdf below 6.7.3 to process untrusted PDFs and read XFA content. General pypdf use without accessing the xfa property may not meet the vulnerable condition described by the source bundle.
Exploitation context
The CVSS vector indicates network attackability, low complexity, no privileges, and high availability impact. The bundle does not cite active exploitation, and KEV is false, so treat exploitation as plausible but not confirmed in the provided evidence.
Researcher notes
The key condition is xfa property access on FlateDecode-compressed XFA streams. The provided sources name the fixed release and patch but do not include evidence of exploitation in the wild. Validation should focus on dependency version, XFA code paths, and untrusted PDF entry points.
Mitigation direction
Upgrade pypdf to version 6.7.3 or later.
If immediate upgrade is blocked, apply the vendor patch manually.
Avoid accessing xfa on untrusted PDFs until fixed.
Run PDF processing with memory limits and worker isolation.
Monitor PDF processing for out-of-memory failures.
Validation and detection
Inventory applications and containers using pypdf.
Confirm installed pypdf versions are 6.7.3 or later.
Search code for reader or writer xfa property access.
Identify PDF upload or ingestion paths accepting untrusted files.
Review dependency lockfiles and deployed package versions.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-400: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.