{"metadata": {"vulnerability": "CVE-2026-119209", "count": 34, "kinds": {"milestone": 11, "sighting": 3, "kev": 0, "other": 20}, "linked_omitted": 0}, "data": [{"timestamp": "2026-10-29T16:04:48.729Z", "date_only": false, "value": "2026-10-29T16:04:48.729Z", "kind": "milestone", "label": "Reserved", "source": "cvelistv5", "record": "CVE-2026-119209", "field": "cveMetadata.dateReserved"}, {"timestamp": "2026-10-29T20:43:03.072Z", "date_only": false, "value": "2026-10-29T20:43:03.072Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-119209", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-10-29T20:43:03.072Z", "date_only": false, "value": "2026-10-29T20:43:03.072Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / GitHub_M", "record": "CVE-2026-119209", "field": "containers.cna.providerMetadata.dateUpdated"}, {"timestamp": "2026-10-29T20:48:12.705Z", "date_only": false, "value": "2026-10-29T20:48:12.705865Z", "kind": "sighting", "label": "Seen", "source": "https://infosec.exchange/users/cve/statuses/117526160491523640", "record": "CVE-2026-119209", "field": "creation_timestamp", "uuid": "7caaa52f-a050-4215-9f3e-dd5e70da0806", "content": "CVE-2026-119209 pypdf: Possible large memory usage when parsing cross-reference streams pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can consume excessive memory while opening a crafted PDF containing cross-reference streams that declare very large entry counts. Highly compressible streams and /Prev chains can multiply the number of parsed entries across a document, while negative /Index counts can bypass the existing per-stream clamp. This issue is fixed in version 6.21.3.\nhttps://www.cve.org/CVERecord?id=CVE-2026-119209https://github.com/py-pdf/pypdf/security/advisories/GHSA-x3rh-gjgm-fmqchttps://github.com/py-pdf/pypdf/pull/4269https://github.com/py-pdf/pypdf/commit/a93fe3a901fd00af38f0a105c3ba7175fa72dcb4https://github.com/py-pdf/pypdf/releases/tag/6.21.3#py-pdf #pypdf#CVE_2026_119209#bot", "url": "https://infosec.exchange/users/cve/statuses/117526160491523640"}, {"timestamp": "2026-10-29T21:17:00Z", "date_only": false, "value": "2026-10-29T21:17:00Z", "kind": "milestone", "label": "Published", "source": "osv_ubuntu \u00b7 UBUNTU-CVE-2026-119209", "record": "UBUNTU-CVE-2026-119209", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-29T21:17:20Z", "date_only": false, "value": "2026-10-29T21:17:20Z", "kind": "other", "label": "Nvd published at", "source": "github \u00b7 GHSA-X3RH-GJGM-FMQC", "record": "GHSA-X3RH-GJGM-FMQC", "field": "database_specific.nvd_published_at", "linked_record": true}, {"timestamp": "2026-10-29T21:17:20.230Z", "date_only": false, "value": "2026-10-29T21:17:20.230", "kind": "milestone", "label": "Published", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-119209", "record": "FKIE_CVE-2026-119209", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-30T15:47:28.155Z", "date_only": false, "value": "2026-10-30T15:47:28.155084Z", "kind": "other", "label": "Recorded", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-119209", "field": "containers.adp.0.metrics.0.other.content.timestamp"}, {"timestamp": "2026-10-30T15:47:28.155Z", "date_only": false, "value": "2026-10-30T15:47:28.155084Z", "kind": "other", "label": "Recorded", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-119209", "record": "FKIE_CVE-2026-119209", "field": "metrics.ssvcV203.0.ssvcData.timestamp", "linked_record": true}, {"timestamp": "2026-10-30T16:00:30.516Z", "date_only": false, "value": "2026-10-30T16:00:30.516Z", "kind": "other", "label": "Updated", "source": "cvelistv5", "record": "CVE-2026-119209", "field": "cveMetadata.dateUpdated"}, {"timestamp": "2026-10-30T16:00:30.516Z", "date_only": false, "value": "2026-10-30T16:00:30.516Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-119209", "field": "containers.adp.0.providerMetadata.dateUpdated"}, {"timestamp": "2026-10-30T23:07:28Z", "date_only": false, "value": "2026-10-30T23:07:28Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-X3RH-GJGM-FMQC", "record": "GHSA-X3RH-GJGM-FMQC", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-30T23:07:28Z", "date_only": false, "value": "2026-10-30T23:07:28Z", "kind": "other", "label": "Updated", "source": "github \u00b7 GHSA-X3RH-GJGM-FMQC", "record": "GHSA-X3RH-GJGM-FMQC", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-31T09:44:22Z", "date_only": false, "value": "2026-10-31T09:44:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-RAPID-MLX-CVE-2026-119209", "record": "BREW-RAPID-MLX-CVE-2026-119209", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-31T10:44:05Z", "date_only": false, "value": "2026-10-31T10:44:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PSUTILS-CVE-2026-119209", "record": "BREW-PSUTILS-CVE-2026-119209", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-31T10:53:10Z", "date_only": false, "value": "2026-10-31T10:53:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PDFLY-CVE-2026-119209", "record": "BREW-PDFLY-CVE-2026-119209", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-31T11:07:52Z", "date_only": false, "value": "2026-10-31T11:07:52Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PDFALYZER-CVE-2026-119209", "record": "BREW-PDFALYZER-CVE-2026-119209", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-31T11:07:52Z", "date_only": false, "value": "2026-10-31T11:07:52Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PDFALYZER-CVE-2026-119209", "record": "BREW-PDFALYZER-CVE-2026-119209", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-31T13:30:50Z", "date_only": false, "value": "2026-10-31T13:30:50.000000Z", "kind": "sighting", "label": "Seen", "source": "https://gist.github.com/alon710/da754da0c8df1611da65a7a534a05a37", "record": "CVE-2026-119209", "field": "creation_timestamp", "uuid": "3fca789b-e25d-4f6e-9fda-2bd325fab276", "content": "# CVE-2026-119209: CVE-2026-119209: Uncontrolled Resource Consumption in pypdf XRef Stream Parser\n\n&gt; **CVSS Score:** 5.5\n&gt; **Published:** 2026-10-30\n&gt; **Full Report:** https://cvereports.com/reports/CVE-2026-119209\n\n## Summary\nCVE-2026-119209 is an uncontrolled resource consumption vulnerability in the pypdf Python library prior to version 6.21.3. The flaw exists within the PDF 1.5 cross-reference (XRef) stream parsing routines in pypdf/_reader.py. Due to the absence of a document-wide entry limit across chained cross-reference streams and improper validation of negative entry counts in the /Index array, an attacker can craft a compact PDF file that triggers excessive memory allocation, resulting in a Denial of Service (DoS) via MemoryError or process termination.\n\n## TL;DR\nVersions of pypdf prior to 6.21.3 fail to restrict the cumulative number of cross-reference stream entries across chained /Prev streams and allow negative integer counts in /Index arrays to bypass per-stream validation clamps. Processing a crafted PDF causes uncontrolled memory allocation and application crash.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **Vulnerability Type**: Uncontrolled Resource Consumption (CWE-400 / CWE-770)\n- **Affected Component**: pypdf._reader.PdfReader (_read_pdf15_xref_stream)\n- **CVSS Score**: 5.5 Medium (NVD v3.1) / 7.1 High (CNA v4.0)\n- **Attack Vector**: Crafted PDF with chained /Prev XRef streams or negative /Index counts\n- **Security Impact**: Denial of Service (DoS) via Memory Exhaustion (OOM)\n- **EPSS Score**: 0.32% (24.86th percentile)\n- **Exploit Status**: Proof-of-Concept (Unit test generator in PR #4269)\n- **Patched Version**: pypdf 6.21.3\n\n## Affected Systems\n\n- pypdf (&lt; 6.21.3)\n- **pypdf**: &lt; 6.21.3 (Fixed in: `6.21.3`)\n\n## Mitigation\n\n- Upgrade pypdf to version 6.21.3 or later to enforce document-wide XRef stream entry limits and negative count validation.\n- Configure custom lower thresholds using the xref_stream_maximum_entries parameter in PdfReader for memory-constrained environments.\n- Enable strict parsing mode (strict=True) in PdfReader to immediately raise exceptions on malformed PDF structures.\n- Isolate PDF parsing workloads within memory-constrained worker processes or containers using cgroups or resource.setrlimit.\n\n**Remediation Steps:**\n1. Audit project dependencies (requirements.txt, pyproject.toml, Pipfile.lock, or poetry.lock) for pypdf versions prior to 6.21.3.\n2. Run `pip install --upgrade \"pypdf&gt;=6.21.3\"` across all affected build pipelines and runtime environments.\n3. Review all call sites of `pypdf.PdfReader()` that process untrusted inputs and pass an appropriate `xref_stream_maximum_entries` value (e.g., `xref_stream_maximum_entries=100_000`).\n4. Ensure exception handlers around `PdfReader` catch `pypdf.errors.LimitReachedError` and `pypdf.errors.PdfStreamError` to prevent unhandled 500 Internal Server Errors.\n\n## References\n\n- [GitHub Security Advisory GHSA-x3rh-gjgm-fmqc](https://github.com/py-pdf/pypdf/security/advisories/GHSA-x3rh-gjgm-fmqc)\n- [pypdf Pull Request #4269](https://github.com/py-pdf/pypdf/pull/4269)\n- [Fix Commit a93fe3a901fd00af38f0a105c3ba7175fa72dcb4](https://github.com/py-pdf/pypdf/commit/a93fe3a901fd00af38f0a105c3ba7175fa72dcb4)\n- [pypdf Release 6.21.3](https://github.com/py-pdf/pypdf/releases/tag/6.21.3)\n- [National Vulnerability Database - CVE-2026-119209](https://nvd.nist.gov/vuln/detail/CVE-2026-119209)\n- [CVE.org Record - CVE-2026-119209](https://www.cve.org/CVERecord?id=CVE-2026-119209)\n- [CVE List V5 JSON Record - CVE-2026-119209](https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/119xxx/CVE-2026-119209.json)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/CVE-2026-119209) - Automated Vulnerability Intelligence*", "url": "https://gist.github.com/alon710/da754da0c8df1611da65a7a534a05a37"}, {"timestamp": "2026-10-31T19:35:05.217Z", "date_only": false, "value": "2026-10-31T19:35:05.217149Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/cvesentinel.bsky.social/post/bimzh5ccpvncc", "record": "CVE-2026-119209", "field": "creation_timestamp", "uuid": "8c54eaee-0870-419a-a834-ffddcfa3b5d0", "content": "\ud83d\udea8 CVE-2026-119209\npypdf project pypdf\nCVSS 7.1 / EPSS 0.27% / KEV: No\nTL;DR: pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can consume excessive memory while opening a crafted PDF\u2026\nhttps://cvesentinel.com/report/CVE-2026-119209\n#infosec #CVE #vulnerability", "url": "https://bsky.app/profile/cvesentinel.bsky.social/post/bimzh5ccpvncc"}, {"timestamp": "2026-10-31T20:06:07Z", "date_only": false, "value": "2026-10-31T20:06:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-RAPID-MLX-CVE-2026-119209", "record": "BREW-RAPID-MLX-CVE-2026-119209", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-31T20:07:36Z", "date_only": false, "value": "2026-10-31T20:07:36Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PDFLY-CVE-2026-119209", "record": "BREW-PDFLY-CVE-2026-119209", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-31T20:45:59Z", "date_only": false, "value": "2026-10-31T20:45:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PSUTILS-CVE-2026-119209", "record": "BREW-PSUTILS-CVE-2026-119209", "field": "modified", "linked_record": true}, {"timestamp": "2026-11-02T16:06:04.477Z", "date_only": false, "value": "2026-11-02T16:06:04.477", "kind": "other", "label": "Updated", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-119209", "record": "FKIE_CVE-2026-119209", "field": "lastModified", "linked_record": true}, {"timestamp": "2026-11-02T16:47:23Z", "date_only": false, "value": "2026-11-02T16:47:23Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:22219-1", "record": "OPENSUSE-SU-2026:22219-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-11-02T16:47:23Z", "date_only": false, "value": "2026-11-02T16:47:23Z", "kind": "other", "label": "Document generated", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:22219-1", "record": "OPENSUSE-SU-2026:22219-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-11-02T16:47:23Z", "date_only": false, "value": "2026-11-02T16:47:23Z", "kind": "other", "label": "Impact", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:22219-1", "record": "OPENSUSE-SU-2026:22219-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-11-02T16:47:23Z", "date_only": false, "value": "2026-11-02T16:47:23Z", "kind": "milestone", "label": "Published", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:22219-1", "record": "OPENSUSE-SU-2026:22219-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-11-04T21:58:37Z", "date_only": false, "value": "2026-11-04T21:58:37Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:22219-1", "record": "OPENSUSE-SU-2026:22219-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-11-05T04:42:51Z", "date_only": false, "value": "2026-11-05T04:42:51Z", "kind": "other", "label": "Updated", "source": "osv_ubuntu \u00b7 UBUNTU-CVE-2026-119209", "record": "UBUNTU-CVE-2026-119209", "field": "modified", "linked_record": true}, {"timestamp": "2026-11-10T16:05:27Z", "date_only": false, "value": "2026-11-10T16:05:27Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:22219-1", "record": "OPENSUSE-SU-2026:22219-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-11-10T16:05:27Z", "date_only": false, "value": "2026-11-10T16:05:27Z", "kind": "other", "label": "Updated", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:22219-1", "record": "OPENSUSE-SU-2026:22219-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-11-11T11:56:32Z", "date_only": false, "value": "2026-11-11T11:56:32Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-BW81309", "record": "CLEANSTART-2026-BW81309", "field": "modified", "linked_record": true}, {"timestamp": "2026-11-12T00:40:00.616Z", "date_only": false, "value": "2026-11-12T00:40:00.616055Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-BW81309", "record": "CLEANSTART-2026-BW81309", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}], "metrics": {"as_of": "2026-11-13T06:23:21.178Z", "anchors": {"origin": {"timestamp": "2026-10-29T20:43:03.072Z", "date_only": false, "value": "2026-10-29T20:43:03.072Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-119209", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "discovery": null, "report": null, "acknowledgement": null, "disclosure": {"timestamp": "2026-10-29T20:43:03.072Z", "date_only": false, "value": "2026-10-29T20:43:03.072Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-119209", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "exploit_publication": null, "exploitation": null, "patch": null}, "vendor_response_time": {"available": false, "missing": ["start", "end"]}, "time_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit_publication": {"available": false, "missing": ["end"]}, "time_to_patch": {"available": false, "missing": ["start", "end"]}, "total_time_to_patch": {"available": false, "missing": ["start", "end"]}, "disclosure_to_patch": {"available": false, "missing": ["end"]}, "time_unpatched": {"available": true, "seconds": 1244418.106428, "hours": 345.67169622999995, "days": 14.402987342916665, "min_seconds": 1244418.106428, "max_seconds": 1244418.106428, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-10-29T20:43:03.072Z", "date_only": false, "value": "2026-10-29T20:43:03.072Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-119209", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "end": {"timestamp": "2026-11-13T06:23:21.178Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}, "exploitation_to_patch": {"available": false, "missing": ["start"]}, "exploit_publication_to_patch": {"available": false, "missing": ["start"]}}}
