CVE-2026-119206
pypdf: Possible long runtimes when retrieving page labels
pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can take excessive time to retrieve page labels from a crafted PDF containing a flat page-label number tree with many ranges. The page_labels property resolves each page independently and repeatedly scans the same /Nums array from the beginning, causing work to grow with both the page count and the number of label ranges. This issue is fixed in version 6.21.3.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.1
pypdf: Possible long runtimes when retrieving page labels
pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can take excessive time to retrieve page labels from a crafted PDF containing a flat page-label number tree with many ranges. The page_labels property resolves each page independently and repeatedly scans the same /Nums array from the beginning, causing work to grow with both the page count and the number of label ranges. This issue is fixed in version 6.21.3.
- Record
CVE-2026-119206- CVSS 4.0
- 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 - Weakness
- CWE-400
- Updated
- 2026-11-03
EUVDEUVD-2026-113378
7.1
pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can take excessive time to retrieve page labels from a crafted PDF containing a flat page-label number tree with many ranges. The page_labels property resolves each page independently and repeatedly scans the same /Nums array from the beginning, causing work to grow with both the page count and the number of label ranges. This issue is fixed in version 6.21.3.
- Record
EUVD-2026-113378- CVSS 4.0
- 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 - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-42gh-23hr-vphw
7.1
pypdf has possible long runtimes when retrieving page labels
Impact
An attacker who uses this vulnerability can craft a PDF which leads to large runtimes. This requires retrieving the page labels of a file.
Patches
This has been fixed in pypdf==6.21.3.
Workarounds
If you cannot upgrade yet, consider applying the changes from PR #4251.
- Record
GHSA-42gh-23hr-vphw- CVSS 4.0
- 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 - Weakness
- CWE-400
- Updated
- 2026-11-02
NVD
7.1
pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can take excessive time to retrieve page labels from a crafted PDF containing a flat page-label number tree with many ranges. The page_labels property resolves each page independently and repeatedly scans the same /Nums array from the beginning, causing work to grow with both the page count and the number of label ranges. This issue is fixed in version 6.21.3.
- Record
CVE-2026-119206- CVSS 4.0
- 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/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 - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-03
OSV
7.1
pypdf: Possible long runtimes when retrieving page labels
pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can take excessive time to retrieve page labels from a crafted PDF containing a flat page-label number tree with many ranges. The page_labels property resolves each page independently and repeatedly scans the same /Nums array from the beginning, causing work to grow with both the page count and the number of label ranges. This issue is fixed in version 6.21.3.
- Record
CVE-2026-119206- CVSS 4.0
- 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 - Weakness
- CWE-400
- Updated
- 2026-11-07
OSVDEBIAN-CVE-2026-119206
5.5
pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can take excessive time to retrieve page labels from a crafted PDF containing a flat page-label number tree with many ranges. The page_labels property resolves each page independently and repeatedly scans the same /Nums array from the beginning, causing work to grow with both the page count and the number of label ranges. This issue is fixed in version 6.21.3.
- Record
DEBIAN-CVE-2026-119206- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-06
OSVGHSA-42gh-23hr-vphw
7.1
pypdf has possible long runtimes when retrieving page labels
Impact
An attacker who uses this vulnerability can craft a PDF which leads to large runtimes. This requires retrieving the page labels of a file.
Patches
This has been fixed in pypdf==6.21.3.
Workarounds
If you cannot upgrade yet, consider applying the changes from PR #4251.
- Record
GHSA-42gh-23hr-vphw- CVSS 4.0
- 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 - Weakness
- CWE-400
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-119206
7.1
pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can take excessive time to retrieve page labels from a crafted PDF containing a flat page-label number tree with many ranges. The page_labels property resolves each page independently and repeatedly scans the same /Nums array from the beginning, causing work to grow with both the page count and the number of label ranges. This issue is fixed in version 6.21.3.
- Record
UBUNTU-CVE-2026-119206- CVSS 4.0
- 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 - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-05
OSVopenSUSE-SU-2026:22219-1 No score
Security update for python-pypdf
This update for python-pypdf fixes the following issues:
Changes in python-pypdf:
- CVE-2026-119209: negative /Index values and multiplied xref streams can lead to clamp bypass and server memory exhaustion (bsc#1288950)
- CVE-2026-119208: trusting forged /Count values in encrypted PDF page trees can lead to excessive resource consumption and denial of service (bsc#1288951)
- CVE-2026-119207: nested exception text accumulation in strict mode parsing can lead to memory amplification and application denial of service (bsc#1288952)
- CVE-2026-119206: repeated sequential /Nums scanning in page_labels resolution can lead to algorithmic complexity attacks and denial of service (bsc#1288944)
- CVE-2026-119205: misdirected reference tracking during dictionary cloning can lead to cycle-detection bypass and thread-hanging infinite loops (bsc#1288943)
- CVE-2026-119204: unbounded resource entry copying during page-tree flattening can lead to excessive memory allocation and denial of service (bsc#1288942)
- CVE-2026-119203: unterminated trailer search in incomplete cross-reference tables can lead to an infinite loop and thread-blocking denial of service (bsc#1288941)
- Record
openSUSE-SU-2026:22219-1- Updated
- 2026-11-04
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
pypdfPyPI |
before 6.21.3 | 6.21.3 |
pypdfDebian:12 |
All versions, plus listed versions 3.17.4-13.4.1-13.4.1-1+deb12u14.0.0-14.0.0-1~exp1 Show 13 moreShow less4.0.1-14.0.2-14.1.0-14.2.0-14.3.1-15.4.0-16.19.0-16.21.0-16.21.1-16.21.4-16.9.0-16.9.2-16.9.2-2 |
None known |
pypdfDebian:13 |
All versions, plus listed versions 5.4.0-16.19.0-16.21.0-16.21.1-16.21.4-16.9.0-16.9.2-16.9.2-2 |
None known |
pypdfDebian:14 |
before 6.21.4-1, plus listed versions 5.4.0-16.19.0-16.21.0-16.21.1-16.9.0-16.9.2-16.9.2-2 |
6.21.4-1 |
pypdf2Debian:12 |
All versions, plus listed versions 2.12.1-32.12.1-3+deb12u12.12.1-4 |
None known |
pypdfPyPI |
before 6.21.3, plus listed versions 1.01.11.101.111.12 Show 45 moreShow less1.131.21.31.41.51.61.71.81.93.1.03.10.03.11.03.11.13.12.03.12.13.12.23.13.03.14.03.15.03.15.13.15.23.15.33.15.43.15.53.16.03.16.13.16.23.16.33.16.43.17.03.17.13.17.23.17.33.17.43.2.03.2.13.3.03.4.03.4.13.5.03.5.13.5.23.6.03.7.03.7.1 |
6.21.3 |
pypdfUbuntu:24.04:LTS |
All versions, plus listed versions 3.4.1-13.17.4-14.0.0-14.0.1-14.0.2-1 |
None known |
pypdfUbuntu:26.10 |
All versions, plus listed versions 6.9.2-16.9.2-2 |
None known |
pypdfUbuntu:26.04:LTS |
All versions, plus listed versions 5.4.0-16.9.2-1 |
None known |
python-pypdfopenSUSE:Leap 16.0 From an advisory covering 7 CVEs |
before 6.19.0-bp160.3.1 | 6.19.0-bp160.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| affected | OSV | |
| affected, aliases, references | EUVD, NVD, OSV | |
| facts | CVE List | |
| affected | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-119206 is a high vulnerability (CVSS 7.1) in Py-pdf Pypdf, published October 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.22%, the 12th percentile. Fixed in pypdf 6.21.3.
References
github.com/py-pdf/pypdf/security/advisories/GHSA-42gh-23hr-vphw
github.com/py-pdf/pypdf/pull/4251
github.com/py-pdf/pypdf/commit/b891fef37000cd86baa6e9848a3387d080b3b03e
github.com/py-pdf/pypdf/releases/tag/6.21.3
nvd.nist.gov/vuln/detail/CVE-2026-119206
github.com/advisories/GHSA-42gh-23hr-vphw
Show 19 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2026/119xxx/CVE-2026-119206.json
security-tracker.debian.org/tracker/CVE-2026-119206
github.com/py-pdf/pypdf
ubuntu.com/security/CVE-2026-119206
cve.org/CVERecord?id=CVE-2026-119206
bugzilla.suse.com/1288941
bugzilla.suse.com/1288942
bugzilla.suse.com/1288943
bugzilla.suse.com/1288944
bugzilla.suse.com/1288950
bugzilla.suse.com/1288951
bugzilla.suse.com/1288952
suse.com/security/cve/CVE-2026-119203
suse.com/security/cve/CVE-2026-119204
suse.com/security/cve/CVE-2026-119205
suse.com/security/cve/CVE-2026-119206
suse.com/security/cve/CVE-2026-119207
suse.com/security/cve/CVE-2026-119208
suse.com/security/cve/CVE-2026-119209
Left out here: 75 versions. The JSON record has them.