CVE catalog

CVE-2026-84309

pypdf is a free and open-source pure-python PDF…

[CVE catalog]

pypdf is a free and open-source pure-python PDF library. Prior to 6.16.0, an attacker can craft a PDF whose cyclic tree structure causes pypdf/generic/_data_structures.py TreeObject.insert_child to follow /Next links indefinitely when a writing code path inserts a child, producing an infinite loop. This issue is fixed in version 6.16.0.

Severity
Medium · CVSS 6.9CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Published
Updated
Source
[NVD] · [CVE record]
EPSS
0.19% · Oct 27, 2026

Projects and upstream resources

Reported versions and fixes

Each observation applies to its named package, distribution, and release. Distribution backports can fix a vulnerability while retaining an older upstream version number.

Version impact has not been established. The original provider fields are retained below.

Provider details and historical evidence
Original provider fields
{
  "package_releases": [
    {
      "name": "pypdf",
      "status": "fixed",
      "release": "sid",
      "version": "6.21.1-1"
    },
    {
      "name": "pypdf",
      "status": "fixed",
      "release": "forky",
      "version": "6.21.1-1"
    },
    {
      "name": "pypdf",
      "status": "vulnerable",
      "release": "trixie",
      "version": "5.4.0-1"
    },
    {
      "name": "pypdf",
      "status": "vulnerable",
      "release": "bookworm",
      "version": "3.4.1-1+deb12u1"
    },
    {
      "name": "pypdf2",
      "status": "vulnerable",
      "release": "bookworm",
      "version": "2.12.1-3+deb12u1"
    }
  ],
  "fixed_versions": [
    {
      "bug": 1146638,
      "name": "pypdf",
      "type": "source",
      "origin": null,
      "release": "sid",
      "urgency": "not yet assigned",
      "fixed_version": "6.19.0-1"
    },
    {
      "bug": 1146638,
      "name": "pypdf",
      "type": "source",
      "origin": null,
      "release": "forky",
      "urgency": "not yet assigned",
      "fixed_version": "6.19.0-1"
    },
    {
      "bug": 1146638,
      "name": "pypdf",
      "type": "source",
      "origin": null,
      "release": "trixie",
      "urgency": "not yet assigned",
      "fixed_version": ""
    },
    {
      "bug": 1146638,
      "name": "pypdf",
      "type": "source",
      "origin": null,
      "release": "bookworm",
      "urgency": "not yet assigned",
      "fixed_version": ""
    },
    {
      "bug": null,
      "name": "pypdf2",
      "type": "source",
      "origin": null,
      "release": "bookworm",
      "urgency": "not yet assigned",
      "fixed_version": ""
    }
  ],
  "distribution_packages": [
    {
      "name": "pypdf",
      "ranges": [
        {
          "type": "ECOSYSTEM",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.16.0"
            }
          ]
        }
      ],
      "ecosystem": "PyPI",
      "fixed_version": "6.16.0",
      "provider_record_id": "PYSEC-2026-3913"
    },
    {
      "name": "pypdf",
      "ranges": [
        {
          "type": "ECOSYSTEM",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.16.0"
            }
          ]
        }
      ],
      "ecosystem": "PyPI",
      "fixed_version": "6.16.0",
      "provider_record_id": "GHSA-JP53-MHQP-8XCG"
    },
    {
      "name": "pypdf",
      "ranges": [
        {
          "fixed": "6.16.0",
          "introduced": "",
          "last_affected": "",
          "start_excluding": ""
        }
      ],
      "ecosystem": "cpe",
      "fixed_version": "6.16.0",
      "provider_record_id": "NVD-CVE-2026-84309"
    },
    {
      "name": "python-pypdf",
      "distro": "opensuse",
      "ranges": [
        {
          "type": "ECOSYSTEM",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.16.2-3.1"
            }
          ]
        }
      ],
      "release": "tumbleweed",
      "versions": [],
      "ecosystem": "rpm",
      "fixed_version": "6.16.2-3.1",
      "provider_record_id": "OPENSUSE-SU-2026:11726-1"
    }
  ]
}

[Debian bug #1146638]

Publisher notes

[trixie] pypdf: Minor issue [bookworm] pypdf: Minor issue [bookworm] pypdf2: Minor issue, DoS

OpenFactory catalog packages

Matching against OpenFactory catalog package versions is in progress.

[Debian 12 (Bookworm)]

  • [python3-pypdf]Unknown

    Source package: [pypdf]

    Details (2)
    • 3.4.1-1+deb12u1 · all · bookworm

      Affected

      nvd · pypdf · debian · bookworm; nvd · pypdf · debian · 12

    • 3.4.1-1+deb12u1 · all · bookworm

      Affected

      nvd · pypdf · debian · bookworm; nvd · pypdf · debian · 12

  • Source package: [pypdf2]

    Details (2)
    • 2.12.1-3+deb12u1 · all · bookworm

      Affected

      nvd · pypdf2 · debian · bookworm; nvd · pypdf2 · debian · 12

    • 2.12.1-3+deb12u1 · all · bookworm

      Affected

      nvd · pypdf2 · debian · bookworm; nvd · pypdf2 · debian · 12

[Debian 13 (Trixie)]

  • [python3-pypdf]Unknown

    Source package: [pypdf]

    Details (2)
    • 5.4.0-1 · all · trixie

      Affected

      nvd · pypdf · debian · 13

    • 5.4.0-1 · all · trixie

      Affected

      nvd · pypdf · debian · 13

[openSUSE Tumbleweed]

  • Source package: [python-pypdf]

    Details (1)
    • 6.16.2-1.1 · noarch · tumbleweed

      Unknown · Fixed: 6.16.2-3.1

      Version impact unknown

      nvd · python-pypdf · opensuse · tumbleweed

  • Source package: [python-pypdf]

    Details (1)
    • 6.16.2-1.1 · noarch · tumbleweed

      Unknown · Fixed: 6.16.2-3.1

      Version impact unknown

      nvd · python-pypdf · opensuse · tumbleweed

Observed:

References