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

CVE-2024-4976

CVE-2024-4976 Out-of-Bounds Access in Xpdf
📅 PUBLISHED: 2024-05-15 20:34 UTC 🔄 UPDATED: 2026-09-23 20:37 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the 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.17%
👁️
0.17% probability
4.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
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-2024-4976 is a critical out-of-bounds (OOB) array write vulnerability in Xpdf versions 4.05 and earlier. The flaw resides in the AcroForm field reference handling logic, where a missing object type check allows an attacker to write beyond the allocated buffer. This can lead to memory corruption, potentially enabling remote code execution (RCE) or denial of service (DoS). The vulnerability has a CVSS score of 0.0 (placeholder) but is considered high risk due to the lack of a patch and the potential for exploitation in document processing pipelines. No public proof-of-concept (PoC) or exploit code has been released, but the risk remains elevated given the nature of the flaw.

⚡ 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

Supply Chain & Package Security

Xpdf is a widely used open-source PDF viewer and toolkit, often integrated into larger systems or used as a library. The vulnerability affects all downstream consumers of Xpdf, including Linux distributions, embedded systems, and document management platforms. Since no patch is available, organizations must rely on workarounds such as disabling AcroForm processing or using alternative PDF libraries.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (placeholder; actual severity likely high)
  • Attack Vector: Network (AV:N) – exploitable via crafted PDF files
  • Attack Complexity: Low (AC:L) – no special conditions required
  • Privileges Required: None (PR:N)
  • User Interaction: Required (UI:R) – victim must open the malicious PDF
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: High (C:H) – potential memory leak
  • Integrity Impact: High (I:H) – memory corruption can alter execution
  • Availability Impact: High (A:H) – crash or DoS

Threat Level: High – due to unpatched status and potential for RCE.

Deep Dive & Mechanics

The vulnerability is triggered when Xpdf processes a PDF file containing an AcroForm field reference. The code fails to validate the object type before performing an array write operation. Specifically, when resolving a field reference, the parser assumes the referenced object is of a certain type (e.g., a dictionary) and writes data into a fixed-size buffer without checking the actual object type. An attacker can craft a PDF where the referenced object is an array or other type, causing the write to exceed the buffer bounds.

Root Cause: Missing type check in the AcroForm field reference resolution logic in xpdf/AcroForm.cc or similar.

Attack Vector: A remote attacker sends a specially crafted PDF file to a victim. When the victim opens the file with Xpdf (or a tool using Xpdf), the OOB write occurs.

Impact: Memory corruption can lead to arbitrary code execution, information disclosure, or denial of service.

Vulnerable vs. Patched Code

Vulnerable Code (Xpdf 4.05):

// Simplified vulnerable snippet
void AcroForm::resolveFieldRef(Object *ref) {
    Object obj = ref->fetch(xref);
    // Missing type check: assumes obj is a Dict
    Dict *dict = obj.getDict();
    // OOB write if obj is not a Dict
    buffer[index] = dict->lookup("V");
}

Patched Code (Hypothetical):

void AcroForm::resolveFieldRef(Object *ref) {
    Object obj = ref->fetch(xref);
    if (!obj.isDict()) {
        error(errSyntaxError, -1, "Expected dictionary for field reference");
        return;
    }
    Dict *dict = obj.getDict();
    buffer[index] = dict->lookup("V");
}

Note: No official patch exists. The above is a suggested fix.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Xpdf 4.05 or earlier installed on a target system.
  • Ability to deliver a malicious PDF file (e.g., via email, web download).

Exploitation Steps:

  1. Craft a PDF with a malformed AcroForm field reference. Use a tool like pdf-parser.py or manual hex editing.
  2. The PDF should contain an indirect object that is an array (or other non-dict type) referenced by an AcroForm field.
  3. When Xpdf processes the field reference, the OOB write occurs, corrupting memory.
  4. If the attacker controls the data written, they can overwrite a function pointer or return address to achieve RCE.

Example PDF Structure (Conceptual):

1 0 obj
<< /Type /Catalog /AcroForm 2 0 R >>
endobj

2 0 obj
<< /Fields [3 0 R] >>
endobj

3 0 obj
[ /This is an array, not a dict ]  % Malicious reference
endobj

Note: No public exploit code is available. This is a theoretical approach.

Blue Team (Defense & Detection)

Detection:

  • Monitor for unusual PDF files being opened by Xpdf processes.
  • Use file integrity monitoring to detect unexpected crashes of Xpdf.
  • Deploy network signatures to detect malicious PDFs (see Suricata rule below).

Mitigation:

  • Disable AcroForm processing in Xpdf if possible (e.g., via configuration).
  • Use alternative PDF viewers (e.g., MuPDF, Chrome's PDFium).
  • Apply vendor patches when available.

Indicators of Compromise (IOCs)

  • File Hashes: (None available; generic malicious PDFs)
  • Network Indicators: PDF files with unusual object structures (e.g., arrays in field references)
  • Process Behavior: Xpdf process crash or abnormal memory access
  • Registry/File System: Temporary files created by Xpdf during processing

Detection Engineering

YARA Rule

rule CVE_2024_4976_Xpdf_OOB_Write {
    meta:
        description = "Detects PDF files exploiting CVE-2024-4976 in Xpdf"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-4976"
    strings:
        $acroform = "/AcroForm" nocase
        $field_ref = "/Fields" nocase
        $array_obj = /\[[^\]]*\]/  // Simple array detection
    condition:
        $acroform and $field_ref and #array_obj > 0
}

Sigma Rule

title: CVE-2024-4976 Xpdf AcroForm OOB Write
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects potential exploitation of CVE-2024-4976 via Xpdf crash or abnormal behavior
author: Valters IT
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\xpdf.exe'
        CommandLine|contains: '.pdf'
    condition: selection
falsepositives:
    - Legitimate PDF processing
level: high

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-4976 Xpdf AcroForm OOB Write Attempt"; flow:to_server,established; content:"/AcroForm"; nocase; content:"/Fields"; nocase; pcre:"/\[[^\]]*\]/"; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable AcroForm processing in Xpdf by setting enableAcroForm = false in the configuration file (if supported).
  2. Use an alternative PDF library such as MuPDF, PDFium, or Poppler.
  3. Monitor for suspicious PDF files using the provided YARA and Suricata rules.

Long-Term Fix:

  • Apply vendor patch when released (currently none).
  • Consider forking Xpdf and applying the hypothetical patch shown above.

Workarounds:

  • Restrict execution of Xpdf to trusted PDFs only.
  • Use sandboxing or containerization for PDF processing.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-4976/ · 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.