Cloudanix VulnDB

CVE-2026-27026

Medium · 5.5

CVSS

5.5

EPSS

0.2%

Published

Feb 20, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A specially made PDF can cause software that processes documents to slow down or stop responding until the affected library is updated.

Exploitation
Requires User Interaction
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

In pypdf versions prior to 6.7.1, malformed PDF content using a /FlateDecode stream can trigger inefficient byte-by-byte decompression behavior, causing PDF parsing or extraction operations to run for an excessively long time. The flaw affects availability rather than confidentiality or integrity: a process that parses attacker-supplied PDFs may consume CPU time, tie up worker threads, delay queues, or hit application timeouts. The upstream fix is included in pypdf 6.7.1 and the related Git fix commit ad2a45d769d56038af8747195cae097bbdb68eee.

Why it matters to the business

Systems that accept or process untrusted PDFs may become slow or unavailable if a malicious or malformed PDF is submitted. This can disrupt document ingestion, upload workflows, background processing, customer-facing portals, case management, e-signature, archiving, or OCR/document-conversion pipelines. The vulnerability is not listed in CISA KEV, has low EPSS, and has no known mature public exploitation based on the provided data, so urgency is highest for internet-facing or automated PDF-processing services and lower for isolated internal tooling.

How an attack unfolds

An attacker creates a specially malformed PDF containing a problematic /FlateDecode stream. They then deliver it to a workflow that uses a vulnerable pypdf version, such as a file upload endpoint, email/document ingestion pipeline, document preview service, metadata extraction job, or batch processor. When the application parses the PDF, pypdf enters an inefficient decompression path and spends excessive time processing the stream. Repeated submissions or automated retries can amplify the impact by exhausting worker capacity, increasing queue depth, consuming CPU, and causing application timeouts or service degradation.

How to fix it

Upgrade pypdf to version 6.7.1 or later wherever it is used. For source-based deployments, ensure the code includes upstream fix commit ad2a45d769d56038af8747195cae097bbdb68eee. Rebuild and redeploy containers, serverless packages, virtual environments, and application bundles that vendor or pin pypdf. If immediate upgrade is not possible, reduce exposure by applying strict PDF processing timeouts, CPU limits, worker isolation, file size limits, queue rate limits, retry limits, and sandboxing for document parsing. Treat PDFs from external users, email, shared drives, and partner integrations as untrusted input.

How to confirm the fix worked

Confirm that all runtime environments use pypdf 6.7.1 or later, not only development lockfiles. Check package manifests, lockfiles, container images, virtual environments, and deployed artifacts using commands such as `python -c "import importlib.metadata; print(importlib.metadata.version('pypdf'))"`, `pip show pypdf`, `pip freeze | grep -i '^pypdf=='`, and software composition analysis tooling. Validate that applications processing PDFs enforce execution timeouts and resource limits. In staging, test representative malformed or corrupted PDFs and confirm that parsing fails fast, times out safely, or is isolated without degrading the service. Review SBOM and dependency scan results to ensure no transitive or vendored copy of pypdf remains below 6.7.1.

Typical attack path

  1. Identify an application or workflow that accepts PDF files and processes them with pypdf.
  2. Create or obtain a malformed PDF containing a /FlateDecode stream that triggers long decompression runtimes in vulnerable pypdf versions.
  3. Submit the PDF through an upload form, API, email ingestion channel, shared storage workflow, or batch processing path.
  4. Wait for the backend parser or worker to process the PDF and consume excessive CPU time or execution time.
  5. Repeat submissions or target high-volume workflows to increase queue backlog, worker exhaustion, and user-visible service disruption.

How to detect it

Review logs and telemetry from systems that accept or process PDFs, including web upload logs, API gateway logs, email ingestion logs, document-processing worker logs, job queue metrics, APM traces, container/runtime CPU metrics, and timeout/error logs. Look for unusually long PDF parsing durations, repeated worker timeouts, queue backlogs, high CPU in Python processes, repeated submissions of the same or similar PDF files, and errors or stack traces involving pypdf decompression filters. Investigate PDF samples associated with long-running jobs for malformed /FlateDecode streams. Correlate suspicious events by source IP, user account, upload route, file hash, object storage key, job ID, and worker hostname. There are no known public exploitation campaigns, named threat actors, or unique malware indicators from the provided data, so detection should focus on behavioral signs of denial-of-service against PDF-processing workflows.

  • /FlateDecode
  • pypdf
  • PdfReader
  • FlateDecode
  • decode_stream_data
  • zlib
  • TimeoutError
  • Worker timeout
  • Task timed out
  • PDF processing timeout
  • document processing timeout
  • maximum execution time exceeded
  • CPU time limit exceeded
  • pypdf<6.7.1
  • pypdf==6.7.0
  • pypdf==6.6.0

What your security team should do

  • Inventory applications, workers, containers, and serverless functions that parse, inspect, transform, merge, split, or extract content from PDFs using pypdf.
  • Prioritize upgrades for externally reachable upload services, automated email/document ingestion, public APIs, and high-volume document processing queues.
  • Upgrade pypdf to 6.7.1 or later and redeploy all packaged artifacts that include the dependency.
  • Add or verify parser-level safeguards: maximum processing time, file size limits, page/object count limits, worker CPU/memory limits, queue throttling, and retry caps.
  • Monitor document-processing services for spikes in CPU, long-running PDF jobs, queue backlog, timeout errors, and repeated failures involving PDF decompression or /FlateDecode streams.
  • Preserve suspicious PDF samples and associated request metadata for forensic review if unexplained PDF-processing slowdowns are observed.
  • Because this is not KEV-listed and EPSS is low, treat as a routine but important availability fix unless the organization has exposed or business-critical PDF ingestion paths.

The record

pypdf is a free and open-source pure-python PDF library. Prior to 6.7.1, an attacker who uses this vulnerability can craft a PDF which leads to long runtimes. This requires a malformed /FlateDecode stream, where the byte-by-byte decompression is used. This vulnerability is fixed in 6.7.1.

Affected packages

Ecosystem Package Introduced Fixed
PyPI pypdf 0 6.7.1
Chainguard open-webui 0 0.8.3-r1
Wolfi open-webui 0 0.8.3-r1
openSUSE:Leap 16.0 python-PyPDF2 0 2.11.1-bp160.2.1
openSUSE:Tumbleweed python-PyPDF2 0 2.11.1-4.1

Related vulnerabilities