Skip to content
Heist/ feed
Back to feed
Medium

pypdf: Possible long runtimes/large memory usage when extracting XForm objects

Type: advisorySources: OSV

pypdf is a free and open-source pure-python PDF library. Prior to 6.16.1, an attacker can craft a PDF that causes pypdf/_page.py PageObject._extract_text and PageObject.extract_xform_text to traverse a directed acyclic graph of reused form XObjects in which each form invokes a child multiple times, creating exponentially many traversal paths and causing long runtimes and large memory consumption. This issue is fixed in version 6.16.1.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-84311
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 01:03 UTC · Revision 1

Source evidence

pypdf: Possible long runtimes/large memory usage when extracting XForm objects

core-osv · Original source

Published 1 Sept 2026, 20:03 UTC

pypdf is a free and open-source pure-python PDF library. Prior to 6.16.1, an attacker can craft a PDF that causes pypdf/_page.py PageObject._extract_text and PageObject.extract_xform_text to traverse a directed acyclic graph of reused form XObjects in which each form invokes a child multiple times, creating exponentially many traversal paths and causing long runtimes and large memory consumption. This issue is fixed in version 6.16.1.

osv:CVE-2026-84311
Complete source record
{
  "id": "8e9bb8a4d975827aa1e9e36d509b22d9158e67d9b66973412f1f8a207a4220b0",
  "url": "https://osv.dev/vulnerability/CVE-2026-84311",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "pypdf: Possible long runtimes/large memory usage when extracting XForm objects",
    "summary": "pypdf is a free and open-source pure-python PDF library. Prior to 6.16.1, an attacker can craft a PDF that causes pypdf/_page.py PageObject._extract_text and PageObject.extract_xform_text to traverse a directed acyclic graph of reused form XObjects in which each form invokes a child multiple times, creating exponentially many traversal paths and causing long runtimes and large memory consumption. This issue is fixed in version 6.16.1.",
    "evidence": "osv:CVE-2026-84311",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-84311",
      "aliases": [
        "CVE-2026-84311",
        "GHSA-763m-79hh-57f2",
        "PYSEC-2026-3911"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/py-pdf/pypdf",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "1bce7a755b4b24ef9d5f2b03f9882c115bec91f2"
                },
                {
                  "fixed": "d91ab705fd81ed1a9cec175c6958600dea1a4942"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:pypdf_project:pypdf:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "6.16.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "d91ab705fd81ed1a9cec175c6958600dea1a4942"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "1bce7a755b4b24ef9d5f2b03f9882c115bec91f2"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "6.16.1"
                  }
                ]
              }
            }
          ],
          "versions": [
            "6.16.0",
            "6.15.0",
            "6.14.2",
            "6.14.1",
            "6.14.0",
            "6.13.3",
            "6.13.2",
            "6.13.1",
            "6.13.0",
            "6.12.2",
            "6.12.1",
            "6.12.0",
            "6.11.0",
            "6.10.2",
            "6.10.1",
            "6.10.0",
            "6.9.2",
            "6.9.1",
            "6.9.0",
            "6.8.0",
            "6.7.5",
            "6.7.4",
            "6.7.3",
            "6.7.2",
            "6.7.1",
            "6.7.0",
            "6.6.2",
            "6.6.1",
            "6.6.0",
            "6.5.0",
            "6.4.2",
            "6.4.1",
            "6.4.0",
            "6.3.0",
            "6.2.0",
            "6.1.3",
            "6.1.2",
            "6.1.1",
            "6.1.0",
            "6.0.0",
            "5.9.0",
            "5.8.0",
            "5.7.0",
            "5.6.1",
            "5.6.0",
            "5.5.0",
            "5.4.0",
            "5.3.1",
            "5.3.0",
            "5.2.0",
            "5.1.0",
            "5.0.1",
            "5.0.0",
            "4.3.1",
            "4.3.0",
            "4.2.0",
            "4.1.0",
            "4.0.2",
            "4.0.1",
            "4.0.0",
            "3.17.4",
            "3.17.3",
            "3.17.2",
            "3.17.1",
            "3.17.0",
            "3.16.4",
            "3.16.3",
            "3.16.2",
            "3.16.1",
            "3.16.0",
            "3.15.5",
            "3.15.4",
            "3.15.3",
            "3.15.2",
            "3.15.1",
            "3.15.0",
            "3.14.0",
            "3.13.0",
            "3.12.2",
            "3.12.1",
            "3.12.0",
            "3.11.1",
            "3.11.0",
            "3.10.0",
            "3.9.1",
            "3.9.0",
            "3.8.1",
            "3.8.0",
            "3.7.1",
            "3.7.0",
            "3.6.0",
            "3.5.2",
            "3.5.1",
            "3.5.0",
            "3.4.1",
            "3.4.0",
            "3.3.0",
            "3.2.1",
            "3.2.0",
            "3.0.0",
            "3.1.0",
            "2.12.1",
            "2.12.0",
            "2.11.2",
            "2.11.1",
            "2.11.0",
            "2.10.9",
            "2.10.8",
            "2.10.7",
            "2.10.6",
            "2.10.5",
            "2.10.4",
            "2.10.3",
            "2.10.2",
            "2.10.1",
            "2.10.0",
            "2.9.0",
            "2.8.1",
            "2.8.0",
            "2.7.0",
            "2.6.0",
            "2.5.0",
            "2.4.2",
            "2.4.1",
            "2.4.0",
            "2.3.1",
            "2.3.0",
            "2.2.1",
            "2.2.0",
            "2.1.1",
            "2.1.0",
            "2.0.0",
            "1.28.2",
            "1.28.1",
            "1.28.0",
            "1.27.12",
            "1.27.11",
            "1.27.10",
            "1.27.9",
            "1.27.8",
            "1.27.7",
            "1.27.6",
            "1.27.5",
            "1.27.4",
            "1.27.3",
            "1.27.2",
            "1.27.1",
            "1.27.0",
            "v1.24",
            "1.26.0",
            "v1.25.1",
            "v1.25",
            "v1.23",
            "v1.22",
            "v1.21",
            "v1.20",
            "v1.19",
            "v1.18",
            "v1.17"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-84311.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:32.635146406Z",
      "provider": "osv",
      "references": [
        "https://github.com/py-pdf/pypdf/releases/tag/6.16.1",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84311.json",
        "https://github.com/py-pdf/pypdf/security/advisories/GHSA-763m-79hh-57f2",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-84311",
        "https://github.com/py-pdf/pypdf/commit/d91ab705fd81ed1a9cec175c6958600dea1a4942",
        "https://github.com/py-pdf/pypdf/pull/3966"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-834"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84311.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-84311",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 499392,
  "published_at": "2026-09-01T20:03:13.421+00:00"
}