☠️
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-51609

CVE-2023-51609 Out-of-Bounds Access in Kofax
📅 PUBLISHED: 2024-05-03 02:15 UTC 🔄 UPDATED: 2026-08-12 09:01 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: T1204
👁️
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-51609 is an out-of-bounds read vulnerability in Kofax Power PDF, specifically within the parsing of JP2 (JPEG 2000) image files. This flaw allows a remote attacker to disclose sensitive memory contents from the affected process. The vulnerability requires user interaction—the target must open a malicious JP2 file or visit a malicious page that triggers the parsing. The CVSS score is 3.3 (Low), but the risk is elevated when chained with other vulnerabilities, as the leaked memory could facilitate arbitrary code execution. No public proof-of-concept, exploit code, or patch is currently available. The EPSS score is 0.0%, indicating very low exploitation activity in the wild.

⚡ 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, in a targeted attack chain, it could be used to bypass ASLR or leak sensitive data.

Deep Dive & Mechanics

The vulnerability resides in the JP2 file parsing routine of Kofax Power PDF. JP2 files contain image data and metadata in a box-based structure. The flaw occurs when the parser reads a user-supplied JP2 file without properly validating the length of a data segment. Specifically, the code reads past the end of an allocated buffer when processing a malformed JP2 box.

Root Cause: Lack of bounds checking on a length field within the JP2 file. When the parser encounters a box with a declared size larger than the actual allocated buffer, it performs a read operation that extends beyond the buffer boundary.

Impact: The out-of-bounds read returns adjacent memory contents, which could include:

  • Heap metadata
  • Other application data (e.g., document contents, credentials)
  • Code pointers (useful for ASLR bypass)

Chaining Potential: While the vulnerability itself only leaks memory, an attacker could combine it with a separate code execution vulnerability (e.g., a heap overflow or use-after-free) to achieve full remote code execution in the context of the current user.

Vulnerable vs. Patched Code

No patched version is available. The vulnerable code is in the JP2 parser module. A hypothetical fix would involve adding a length check before reading data from a JP2 box:

Vulnerable (pseudo-code):

void parse_jp2_box(uint8_t *buffer, size_t buffer_size) {
    uint32_t box_length = *(uint32_t*)buffer; // read from file
    // No check: box_length may be larger than buffer_size
    uint8_t *box_data = buffer + 8; // skip header
    // Out-of-bounds read if box_length > buffer_size
    process_box_data(box_data, box_length);
}

Patched (pseudo-code):

void parse_jp2_box(uint8_t *buffer, size_t buffer_size) {
    uint32_t box_length = *(uint32_t*)buffer;
    if (box_length > buffer_size - 8) {
        // Error: invalid box length
        return;
    }
    uint8_t *box_data = buffer + 8;
    process_box_data(box_data, box_length);
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Kofax Power PDF (any version with JP2 support)
  • A crafted JP2 file with an oversized box length field

Steps:

  1. Create a JP2 file with a malformed box header. For example, set the box length to a value larger than the actual file size (e.g., 0xFFFFFFFF).
  2. Deliver the file to the target via email, download, or malicious website.
  3. When the target opens the file in Kofax Power PDF, the parser reads past the buffer, leaking memory.
  4. Use a debugger or memory dump tool to capture the leaked data.

Example Crafting (Python):

import struct

def create_malicious_jp2():
    # Minimal JP2 file with oversized box length
    jp2_header = b'\x00\x00\x00\x0c\x6a\x50\x20\x20\x0d\x0a\x87\x0a'
    # Box with length = 0xFFFFFFFF (max uint32)
    box_length = struct.pack('>I', 0xFFFFFFFF)
    box_type = b'\x6a\x70\x32\x68'  # 'jp2h'
    box_data = b'A' * 100  # dummy data
    malicious_box = box_length + box_type + box_data
    return jp2_header + malicious_box

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

Blue Team

Detection:

  • Monitor for abnormal process memory reads by Kofax Power PDF (e.g., using ETW or Sysmon).
  • Look for crashes or access violations in the JP2 parser module.
  • Use the YARA rule below to scan incoming JP2 files for oversized box lengths.

Mitigation:

  • Restrict execution of Kofax Power PDF in sandboxed environments.
  • Use application whitelisting to prevent untrusted files from being opened.
  • Monitor for exploitation chains (e.g., subsequent code execution attempts).

Indicators of Compromise (IOCs)

  • File Hashes (example malicious JP2):
    • SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (placeholder)
  • Process Anomalies:
    • Kofax Power PDF process (e.g., PowerPDF.exe) reading memory beyond allocated heap regions.
    • Access violation exceptions in JP2Parser.dll or similar module.
  • Network: None (local file-based exploit).
  • Registry: None.

Detection Engineering

YARA Rule

rule CVE_2023_51609_JP2_OOB_Read {
    meta:
        description = "Detects malicious JP2 files with oversized box length (CVE-2023-51609)"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-51609"
    strings:
        $jp2_magic = { 00 00 00 0C 6A 50 20 20 0D 0A 87 0A }
        $box_length_large = { FF FF FF FF }  // 0xFFFFFFFF
    condition:
        $jp2_magic at 0 and $box_length_large in (12..16)
}

Sigma Rule

title: CVE-2023-51609 - Kofax Power PDF JP2 Out-of-Bounds Read
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects access violations in Kofax Power PDF when parsing malformed JP2 files
author: Valters IT
date: 2025-04-10
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\PowerPDF.exe'
        CommandLine|contains: '.jp2'
    condition: selection
falsepositives:
    - Legitimate JP2 files with unusual box sizes (rare)
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2023-51609 - Kofax Power PDF JP2 OOB Read - Malicious JP2 Download"; flow:to_client,established; file.name:/.*\.jp2/i; file.size:>100; content:"|00 00 00 0C 6A 50 20 20 0D 0A 87 0A|"; offset:0; depth:12; content:"|FF FF FF FF|"; within:4; distance:12; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable JP2 support in Kofax Power PDF if not required (via application settings or group policy).
  2. Restrict file types allowed to be opened by Kofax Power PDF using file type association controls.
  3. Use a sandbox (e.g., Windows Sandbox, Sandboxie) to open untrusted PDFs.

Long-Term:

  • Monitor vendor for an official patch. If none is released, consider migrating to an alternative PDF reader that actively maintains security.
  • Implement application control to block Kofax Power PDF from executing unless explicitly approved.
  • Educate users not to open JP2 files from untrusted sources.

Workaround: Convert JP2 images to a safer format (e.g., PNG) before embedding in PDFs.


Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

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