{"metadata": {"vulnerability": "CVE-2026-119207", "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-119207", "field": "cveMetadata.dateReserved"}, {"timestamp": "2026-10-29T20:38:54.611Z", "date_only": false, "value": "2026-10-29T20:38:54.611Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-119207", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-10-29T20:38:54.611Z", "date_only": false, "value": "2026-10-29T20:38:54.611Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / GitHub_M", "record": "CVE-2026-119207", "field": "containers.cna.providerMetadata.dateUpdated"}, {"timestamp": "2026-10-29T20:42:31.330Z", "date_only": false, "value": "2026-10-29T20:42:31.330647Z", "kind": "sighting", "label": "Seen", "source": "https://infosec.exchange/users/cve/statuses/117526138110067239", "record": "CVE-2026-119207", "field": "creation_timestamp", "uuid": "7772dc9f-f7df-464a-a62a-49f8e1e3f164", "content": "CVE-2026-119207 pypdf: Possible large memory usage for exceptions in strict mode pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can consume excessive memory when strict mode loads a crafted invalid PDF dictionary. Nested parsing failures add repeated exception text to newly raised errors, allowing a small malformed dictionary to amplify into very large error messages. This issue is fixed in version 6.21.3.\nhttps://www.cve.org/CVERecord?id=CVE-2026-119207https://github.com/py-pdf/pypdf/security/advisories/GHSA-4vqv-7265-gm2whttps://github.com/py-pdf/pypdf/pull/4265https://github.com/py-pdf/pypdf/commit/64270258c0eced720f7960aecf8cef31afd39f8dhttps://github.com/py-pdf/pypdf/releases/tag/6.21.3#py-pdf #pypdf#CVE_2026_119207#bot", "url": "https://infosec.exchange/users/cve/statuses/117526138110067239"}, {"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-119207", "record": "UBUNTU-CVE-2026-119207", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-29T21:17:19Z", "date_only": false, "value": "2026-10-29T21:17:19Z", "kind": "other", "label": "Nvd published at", "source": "github \u00b7 GHSA-4VQV-7265-GM2W", "record": "GHSA-4VQV-7265-GM2W", "field": "database_specific.nvd_published_at", "linked_record": true}, {"timestamp": "2026-10-29T21:17:19.953Z", "date_only": false, "value": "2026-10-29T21:17:19.953", "kind": "milestone", "label": "Published", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-119207", "record": "FKIE_CVE-2026-119207", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-30T17:12:29.821Z", "date_only": false, "value": "2026-10-30T17:12:29.821934Z", "kind": "other", "label": "Recorded", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-119207", "field": "containers.adp.0.metrics.0.other.content.timestamp"}, {"timestamp": "2026-10-30T17:12:29.821Z", "date_only": false, "value": "2026-10-30T17:12:29.821934Z", "kind": "other", "label": "Recorded", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-119207", "record": "FKIE_CVE-2026-119207", "field": "metrics.ssvcV203.0.ssvcData.timestamp", "linked_record": true}, {"timestamp": "2026-10-30T17:12:40.743Z", "date_only": false, "value": "2026-10-30T17:12:40.743Z", "kind": "other", "label": "Updated", "source": "cvelistv5", "record": "CVE-2026-119207", "field": "cveMetadata.dateUpdated"}, {"timestamp": "2026-10-30T17:12:40.743Z", "date_only": false, "value": "2026-10-30T17:12:40.743Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-119207", "field": "containers.adp.0.providerMetadata.dateUpdated"}, {"timestamp": "2026-10-30T23:08:39Z", "date_only": false, "value": "2026-10-30T23:08:39Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-4VQV-7265-GM2W", "record": "GHSA-4VQV-7265-GM2W", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-30T23:08:40Z", "date_only": false, "value": "2026-10-30T23:08:40Z", "kind": "other", "label": "Updated", "source": "github \u00b7 GHSA-4VQV-7265-GM2W", "record": "GHSA-4VQV-7265-GM2W", "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-119207", "record": "BREW-RAPID-MLX-CVE-2026-119207", "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-119207", "record": "BREW-PSUTILS-CVE-2026-119207", "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-119207", "record": "BREW-PDFLY-CVE-2026-119207", "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-119207", "record": "BREW-PDFALYZER-CVE-2026-119207", "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-119207", "record": "BREW-PDFALYZER-CVE-2026-119207", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-31T11:30:51Z", "date_only": false, "value": "2026-10-31T11:30:51.000000Z", "kind": "sighting", "label": "Seen", "source": "https://gist.github.com/alon710/75d586960f5f55b4d291d45e914ebd09", "record": "CVE-2026-119207", "field": "creation_timestamp", "uuid": "ea6e903e-5032-42b3-9f65-a8934f5728ad", "content": "# CVE-2026-119207: CVE-2026-119207: Asymmetric Resource Consumption in pypdf Dictionary Parser\n\n&gt; **CVSS Score:** 7.1\n&gt; **Published:** 2026-10-30\n&gt; **Full Report:** https://cvereports.com/reports/CVE-2026-119207\n\n## Summary\nCVE-2026-119207 (GHSA-4vqv-7265-gm2w) is an asymmetric resource consumption and denial-of-service (DoS) vulnerability in the open-source Python PDF manipulation library pypdf. In versions prior to 6.21.3, the DictionaryObject.read_from_stream method fails to bound exception message lengths when encountering malformed, unclosed dictionary structures in strict mode. When nested dictionary parsing fails, each level catches the inner exception and raises a new PdfReadError initialized with the string representation (exc.__repr__()) of the caught exception. This recursive wrapping causes geometric string expansion across the call stack, enabling a minimal PDF payload of a few hundred bytes to exhaust gigabytes of heap memory and crash the host Python process.\n\n## TL;DR\nVersions of pypdf prior to 6.21.3 suffer from geometric exception string expansion when parsing nested, unclosed PDF dictionaries with strict=True. A tiny crafted PDF payload can force the parser to allocate gigabytes of memory via recursive exc.__repr__() wrapping, resulting in an Out-Of-Memory (OOM) denial of service.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **CVE ID**: CVE-2026-119207 (GHSA-4vqv-7265-gm2w)\n- **Vulnerability Class**: CWE-400 (Uncontrolled Resource Consumption) / CWE-405 (Asymmetric Resource Consumption)\n- **CVSS v4.0 Score**: 7.1 High (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N)\n- **Affected Component**: DictionaryObject.read_from_stream in pypdf/generic/_data_structures.py\n- **Affected Versions**: pypdf &lt; 6.21.3 (when strict=True is enabled)\n- **Patched Version**: pypdf &gt;= 6.21.3\n- **EPSS Score**: 0.30% (23.18th percentile)\n- **Primary Impact**: Application Denial of Service via O(2^N) heap memory exhaustion\n\n## Affected Systems\n\n- pypdf (Python Package Index / PyPI)\n- Python applications and document processing pipelines utilizing pypdf &lt; 6.21.3 with strict=True\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 eliminate recursive exception string expansion.\n- Disable strict parsing mode (set strict=False) when initializing PdfReader on untrusted PDF inputs.\n- Isolate PDF parsing operations inside dedicated worker processes or containers with enforced cgroup memory limits.\n- Enforce process-level virtual memory limits using Python's resource.setrlimit(resource.RLIMIT_AS, ...) on Unix platforms.\n\n**Remediation Steps:**\n1. Audit application dependencies (requirements.txt, Pipfile.lock, poetry.lock) to identify pypdf versions prior to 6.21.3.\n2. Run 'pip install --upgrade \"pypdf&gt;=6.21.3\"' in all affected build pipelines and runtime environments.\n3. Verify that custom error handlers wrapping pypdf operations do not broadly catch Exception without re-raising MemoryError.\n4. Run regression tests to confirm application compatibility with the static PdfReadError('Error reading PDF file.') message format.\n\n## References\n\n- [CVE-2026-119207 Official CVE.org Record](https://www.cve.org/CVERecord?id=CVE-2026-119207)\n- [NVD Vulnerability Detail: CVE-2026-119207](https://nvd.nist.gov/vuln/detail/CVE-2026-119207)\n- [GitHub Security Advisory GHSA-4vqv-7265-gm2w](https://github.com/py-pdf/pypdf/security/advisories/GHSA-4vqv-7265-gm2w)\n- [GitHub Pull Request #4265: SEC: Avoid excessive error messages](https://github.com/py-pdf/pypdf/pull/4265)\n- [GitHub Patch Commit 64270258c0eced720f7960aecf8cef31afd39f8d](https://github.com/py-pdf/pypdf/commit/64270258c0eced720f7960aecf8cef31afd39f8d)\n- [pypdf Release 6.21.3](https://github.com/py-pdf/pypdf/releases/tag/6.21.3)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/CVE-2026-119207) - Automated Vulnerability Intelligence*", "url": "https://gist.github.com/alon710/75d586960f5f55b4d291d45e914ebd09"}, {"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-119207", "record": "BREW-RAPID-MLX-CVE-2026-119207", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-31T20:07:35Z", "date_only": false, "value": "2026-10-31T20:07:35Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PDFLY-CVE-2026-119207", "record": "BREW-PDFLY-CVE-2026-119207", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-31T20:43:39Z", "date_only": false, "value": "2026-10-31T20:43:39Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PSUTILS-CVE-2026-119207", "record": "BREW-PSUTILS-CVE-2026-119207", "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-119207", "record": "FKIE_CVE-2026-119207", "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-04T13:29:48.803Z", "date_only": false, "value": "2026-11-04T13:29:48.803612Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/cvesentinel.bsky.social/post/4xl5w2hgp7lhq", "record": "CVE-2026-119207", "field": "creation_timestamp", "uuid": "4e052b93-30f4-43a7-a483-383b9f8010ef", "content": "\ud83d\udea8 CVE-2026-119207\npy-pdf pypdf\nCVSS 7.1 / EPSS 0.22% / 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 when strict mode loads a crafted invalid\u2026\nhttps://cvesentinel.com/report/CVE-2026-119207\n#infosec #CVE #vulnerability", "url": "https://bsky.app/profile/cvesentinel.bsky.social/post/4xl5w2hgp7lhq"}, {"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-119207", "record": "UBUNTU-CVE-2026-119207", "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-GZ71302", "record": "CLEANSTART-2026-GZ71302", "field": "modified", "linked_record": true}, {"timestamp": "2026-11-12T00:40:00.410Z", "date_only": false, "value": "2026-11-12T00:40:00.410538Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-GZ71302", "record": "CLEANSTART-2026-GZ71302", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}], "metrics": {"as_of": "2026-11-12T03:30:26.874Z", "anchors": {"origin": {"timestamp": "2026-10-29T20:38:54.611Z", "date_only": false, "value": "2026-10-29T20:38:54.611Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-119207", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "discovery": null, "report": null, "acknowledgement": null, "disclosure": {"timestamp": "2026-10-29T20:38:54.611Z", "date_only": false, "value": "2026-10-29T20:38:54.611Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-119207", "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": 1147892.263571, "hours": 318.85896210305555, "days": 13.285790087627314, "min_seconds": 1147892.263571, "max_seconds": 1147892.263571, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-10-29T20:38:54.611Z", "date_only": false, "value": "2026-10-29T20:38:54.611Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-119207", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "end": {"timestamp": "2026-11-12T03:30:26.874Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}, "exploitation_to_patch": {"available": false, "missing": ["start"]}, "exploit_publication_to_patch": {"available": false, "missing": ["start"]}}}
