☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2026-4407

CVE-2026-4407 Out-of-Bounds Access in Xpdf
📅 PUBLISHED: 2026-03-18 21:44 UTC 🔄 UPDATED: 2026-09-23 20:37 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.14%
👁️
0.14% probability
3.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: United States License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
2.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-4407 is a critical out-of-bounds (OOB) array write vulnerability discovered in Xpdf, a widely used open-source PDF viewer and library. The flaw resides in the validation logic for the "N" field within ICCBased color spaces. An attacker can craft a malicious PDF file that, when processed by Xpdf 4.06 and earlier, triggers an OOB write, potentially leading to arbitrary code execution or denial of service. The vulnerability is currently unpatched, and no public proof-of-concept (PoC) or exploit code has been released. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for systems that process untrusted PDFs.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

The CVSS score is listed as 0.0, which is likely a placeholder. Based on the nature of the vulnerability (OOB write in a color space parser), a realistic CVSS v3.1 vector would be:

  • Attack Vector (AV): Network (AV:N) – the vulnerability can be triggered remotely via a malicious PDF.
  • Attack Complexity (AC): Low (AC:L) – no special conditions required.
  • Privileges Required (PR): None (PR:N) – no authentication needed.
  • User Interaction (UI): Required (UI:R) – the victim must open the malicious PDF.
  • Scope (S): Unchanged (S:U) – the vulnerable component is the PDF viewer.
  • Confidentiality (C): High (C:H) – potential for arbitrary code execution.
  • Integrity (I): High (I:H) – attacker can modify memory.
  • Availability (A): High (A:H) – crash or denial of service.

Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H Estimated Base Score: 8.8 (High)

Deep Dive & Mechanics

The vulnerability is in the ICCBased color space parsing code within Xpdf. ICCBased color spaces are defined in PDF by an ICC profile and a dictionary containing an "N" field, which specifies the number of color components (e.g., 1 for grayscale, 3 for RGB, 4 for CMYK). The flaw occurs because Xpdf does not properly validate the "N" field value. When a malicious PDF provides an "N" value that is too large (e.g., 100), the code attempts to write to an array that is sized based on the expected number of components (typically 4 or less). This results in an out-of-bounds write, corrupting adjacent memory.

The vulnerable code path is in GfxICCBasedColorSpace.cc or similar files. The array used to store color component values is allocated with a fixed size, but the loop that reads the "N" field does not check if the index exceeds the array bounds. An attacker can control the "N" value to write arbitrary data to memory beyond the array, potentially overwriting function pointers or other critical data structures.

Vulnerable vs. Patched Code

Vulnerable Code (Xpdf 4.06 and earlier):

// Simplified vulnerable code
int n = getNValue(); // from PDF dictionary, no bounds check
double components[n]; // stack array, but n can be huge
for (int i = 0; i < n; i++) {
    components[i] = readComponent(); // OOB write if n > expected
}

Patched Code (hypothetical fix):

// Patched code with validation
int n = getNValue();
if (n < 1 || n > 4) { // max components for ICCBased is 4
    error("Invalid N value in ICCBased color space");
    return;
}
double components[4]; // fixed size
for (int i = 0; i < n; i++) {
    components[i] = readComponent();
}

The fix adds a bounds check on the "N" field, limiting it to the valid range (1-4). Without this, the vulnerability remains exploitable.

Exploitation & Lab Setup

Red Team (Attack Simulation)

  1. Craft a Malicious PDF: Use a PDF manipulation library (e.g., pdf-parser.py or qpdf) to create a PDF with an ICCBased color space where the "N" field is set to a large value (e.g., 1000). Embed shellcode or ROP chains in the PDF metadata to be executed when the OOB write occurs.
  2. Deliver the PDF: Send the malicious PDF via email, web download, or other means to a target using Xpdf 4.06.
  3. Trigger the Vulnerability: When the victim opens the PDF with Xpdf, the OOB write corrupts memory, leading to code execution.

Example PDF generation (Python with pdfkit or reportlab):

# This is a conceptual example; actual exploitation requires precise memory layout.
from reportlab.lib.pdfencrypt import StandardEncryption
from reportlab.pdfgen import canvas
# ... craft PDF with malformed ICCBased color space

Blue Team (Defense & Detection)

  1. Monitor PDF Processing: Use file integrity monitoring (FIM) to detect unusual PDF files. Deploy endpoint detection and response (EDR) to monitor Xpdf processes for abnormal memory access patterns.
  2. Sandboxing: Run Xpdf in a sandboxed environment (e.g., Firejail, Docker) to limit the impact of exploitation.
  3. Network Segmentation: Restrict access to PDF files from untrusted sources. Use web proxies to scan PDFs for malformed ICCBased color spaces.
  4. User Training: Educate users not to open PDFs from unknown sources.

Indicators of Compromise (IOCs)

  • File Hashes: (No known samples yet; placeholder)
    • sha256: <unknown>
  • Network Indicators: PDF files with unusual ICCBased color space definitions.
  • Process Behavior: Xpdf process crashes or exhibits abnormal memory writes (e.g., writing to addresses beyond the heap).
  • Registry/File System: Temporary files created by Xpdf with malformed color space data.

Detection Engineering

YARA Rule

rule CVE_2026_4407_ICCBased_OOB {
    meta:
        description = "Detects PDF files with malformed ICCBased color space N field"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2026-4407"
    strings:
        $icc = "/ICCBased" nocase
        $n_field = "/N" nocase
        $large_n = /\/N\s+(\d{3,})/ // N value with 3 or more digits
    condition:
        $icc and $n_field and $large_n
}

Sigma Rule

title: CVE-2026-4407 - Xpdf ICCBased OOB Write
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects Xpdf crashes or abnormal memory access due to malformed ICCBased color space
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\xpdf.exe'
        CommandLine|contains: '.pdf'
    condition: selection
falsepositives:
    - Legitimate PDFs with large ICC profiles (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-4407 - Malicious PDF with ICCBased OOB"; flow:to_server,established; fileext:"pdf"; content:"/ICCBased"; content:"/N"; pcre:"/\/N\s+\d{3,}/"; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Action: Disable or restrict the use of Xpdf 4.06 and earlier versions. Use alternative PDF viewers (e.g., MuPDF, Evince) until a patch is released.
  2. Vendor Patch: Monitor Xpdf's official website (https://www.xpdfreader.com/) for updates. Apply the patch as soon as it becomes available.
  3. Workaround: If Xpdf must be used, implement input validation at the network perimeter to block PDFs with ICCBased color spaces containing an "N" field greater than 4.
  4. Compensating Controls: Deploy application whitelisting to prevent unauthorized PDF viewers. Use memory protection mechanisms (e.g., ASLR, DEP) to mitigate exploitation.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-4407/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.