Skip to main content

pypdf CVE-2026-41313

| EUVDEUVD-2026-25114 MEDIUM
Excessive Iteration (CWE-834)
2026-04-22 GitHub_M
4.8
CVSS 4.0 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Attacker crafts malicious PDF file
  2. Delivery
    Sets trailer /Size to excessively large value
  3. Exploit
    User or system loads PDF in pypdf
  4. Install
    Parser enters incremental mode
  5. C2
    Algorithmic iteration over inflated object count
  6. Execute
    Resource exhaustion and application hang
  7. Impact
    Denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Excessive iteration
Exploitation Conditions

The vulnerability requires loading a PDF file with a crafted large trailer /Size value while using incremental PDF update mode. Incremental mode is invoked when pypdf detects that a PDF has been appended to (a standard feature of the PDF format). The attacker must craft a PDF where the /Size value in the trailer dictionary is set to an arbitrarily large number, and the PDF must be supplied to pypdf in a context where it will be processed - this requires either direct user action to open the file in an application using pypdf or an automated system that processes PDFs without strict validation. No special configuration of pypdf is required; the vulnerability exists in the default parsing behavior. Exploitation is limited by the local attack vector (AV:L), meaning the attacker must have local file system access or the ability to convince a user to open the malicious PDF, and by the user interaction requirement (UI:P), which means the vulnerability cannot be exploited remotely or without user action.

Impact

This is a moderate-severity denial of service vulnerability with limited real-world impact. The CVSS 4.0 score of 4.8 reflects local attack vector (AV:L), low complexity (AC:L), and user interaction required (UI:P), with negligible confidentiality/integrity impact but low availability impact (VA:L). The local attack vector and requirement for user interaction to open a malicious PDF significantly reduces exploitability compared to network-accessible vulnerabilities. EPSS data is not provided, so exploitation probability cannot be benchmarked. No evidence of active exploitation (KEV status unknown; no CISA KEV listing in input). The attack requires deliberate user action to load a crafted PDF file, making this primarily a concern for applications that process untrusted PDF inputs automatically or where user education is weak. The low complexity and no-privilege requirements indicate that any user with access to the application can trigger the condition, but the local-only attack vector limits scope to on-premises or local-access scenarios.

Exploit ScenarioDerived

An attacker crafts a malicious PDF file with a trailer /Size entry set to an extremely large value (e.g., 2,147,483,647). When a user or automated system opens this PDF using an application built on pypdf versions prior to 6.10.2, the library enters incremental mode and begins processing the artificially inflated object count, causing the application to consume excessive CPU and memory resources and become unresponsive for extended periods. Publicly available exploit code exists in the form of the patch itself, which reveals exactly how to construct such a malicious PDF.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Apr 23, 2026

Denial of service via algorithmic complexity in pypdf versions prior to 6.10.2 allows local attackers to cause long runtimes by crafting a PDF with an excessively large trailer /Size value when loaded in incremental mode. The vulnerability requires user interaction to load the malicious PDF and results in availability degradation rather than data compromise. Patch version 6.10.2 is available from the vendor.

RemediationAI

Upgrade pypdf to version 6.10.2 or later immediately. The vendor has released patched version 6.10.2 available at https://github.com/py-pdf/pypdf/releases/tag/6.10.2. As a workaround, users unable to upgrade immediately may manually apply the patch from the GitHub pull request at https://github.com/py-pdf/pypdf/pull/3735 or the specific commit at https://github.com/py-pdf/pypdf/commit/c50a0104cf083356f7c7f5d61410466a57f5c88a. For applications that process untrusted PDFs, implement input validation to reject PDFs with unreasonably large /Size values in the trailer dictionary (e.g., reject /Size values exceeding 1,000,000 objects) as a compensating control. This may reject some legitimately large PDFs but prevents algorithmic complexity attacks. Alternatively, implement timeout mechanisms on PDF parsing operations to limit processing time, though this may result in incomplete PDF processing.

Affected VersionsENISA

pypdf < 6.10.2

Affected Packages

pypi pypdf fix: 6.10.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

pypdf is a pure-Python PDF processing library that implements PDF parsing according to the ISO 32000 specification. The vulnerability exists in the incremental PDF update mechanism, which allows PDFs to be modified by appending new content rather than rewriting the entire file. The /Size entry in a PDF's trailer dictionary specifies the total number of indirect objects in the file. When pypdf processes a PDF in incremental mode with a crafted /Size value set to an artificially large number, the parser allocates or iterates over resources based on this value, causing algorithmic complexity (CWE-834: Excessive Iteration) that leads to prolonged processing times. This affects the cross-reference table parsing and object lookup mechanisms.

Know when Pypdf gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

GitHub Advisory PRIMARY 4.8 MEDIUM
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
SUSE 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Red Hat 5.5 MEDIUM

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

4
Patch released
Apr 27, 2026 - 19:30 nvd
Patch available
Patch available
Apr 22, 2026 - 23:02 EUVD
CVSS changed
Apr 22, 2026 - 22:22 NVD
4.8 (MEDIUM)
CVE Published
Apr 22, 2026 - 21:04 nvd
MEDIUM 4.8

DescriptionGitHub Advisory

pypdf is a free and open-source pure-python PDF library. An attacker who uses a vulnerability present in versions prior to 6.10.2 can craft a PDF which leads to long runtimes. This requires loading a PDF with a large trailer /Size value in incremental mode. This has been fixed in pypdf 6.10.2. As a workaround, one may apply the changes from the patch manually.

Threat Intelligence Overview

EPSS Score
0.0%
Top 97% exploitable
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Pypdf

View all
CVE-2026-84309 MEDIUM POC
6.9 Sep 01

Infinite loop denial of service in pypdf prior to 6.16.0 allows any attacker who can supply a crafted PDF to a pypdf-bas

CVE-2026-54651 MEDIUM POC
6.9 Jun 22

Infinite loop denial-of-service in pypdf prior to 6.13.1 allows an attacker to hang any process that merges a crafted PD

CVE-2023-36810 MEDIUM POC
6.5 Jun 30

pypdf is a pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files. Rat

CVE-2023-36807 MEDIUM POC
6.5 Jun 30

pypdf is a pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files. Rat

CVE-2023-36464 MEDIUM POC
5.5 Jun 27

pypdf is an open source, pure-python PDF library. Rated medium severity (CVSS 5.5), this vulnerability is no authenticat

CVE-2026-84310 MEDIUM POC
4.8 Sep 01

Resource exhaustion in pypdf prior to 6.16.1 allows an attacker who can supply a crafted PDF to cause denial of service

CVE-2026-103000 HIGH
8.7 Sep 30

Memory exhaustion in pypdf versions prior to 6.19.0 allows a remote, unauthenticated attacker to make an application una

CVE-2026-102999 HIGH
8.7 Sep 30

Denial of service in pypdf versions prior to 6.19.0 allows an unauthenticated remote attacker to pin a PDF-processing wo

CVE-2026-102998 HIGH
8.7 Sep 30

Denial of service in pypdf versions prior to 6.19.0 allows remote, unauthenticated attackers to exhaust application CPU

CVE-2026-102997 HIGH
8.7 Sep 30

Denial of service in pypdf before 6.18.1 lets a crafted PDF drive the library's FlateDecode recovery path into inefficie

CVE-2026-102996 HIGH
8.7 Sep 30

Memory exhaustion in pypdf versions prior to 6.18.1 lets a crafted PDF force the library to allocate and process far mor

CVE-2026-102995 HIGH
8.7 Sep 30

Memory exhaustion in pypdf versions prior to 6.18.1 allows unauthenticated remote attackers to crash or degrade any appl

Vendor StatusVendor

SUSE

Severity: Medium

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy