Skip to main content

OpenJPH CVE-2026-111151

| EUVDEUVD-2026-102278 MEDIUM
Out-of-bounds Write (CWE-787)
2026-10-15 VulnCheck
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious .jph codestream with small precincts
  2. Delivery
    Deliver file to OpenJPH decode path
  3. Exploit
    Decoder processes one-row codeblock
  4. Execution
    Cleanup-pass writes past buffer
  5. Impact
    Heap memory corrupted, application crashes

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the victim application to decode an attacker-supplied JPEG 2000 codestream (.j2c or .jph) using OpenJPH version 0.32.0 or earlier. The crafted file must specify small precinct sizes that create degenerate one-row codeblocks processed by the HTJ2K cleanup-pass decoder - this specific malformed structure is the trigger. Limiting factors: the vector is local (AV:L) and requires user/application interaction to open or process the file (UI:P), so there is no remote unauthenticated path; realistic exposure depends on OpenJPH being embedded in a decode path that accepts untrusted images (upload handlers, viewers, conversion services). No authentication is required (PR:N), but a victim must be induced to process the malicious codestream.

Impact

This is a moderate, not top-priority, issue whose signals are internally consistent. The authoritative CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:H, score 6.9 Medium) describes a locally-delivered, low-complexity flaw that requires passive user interaction (the victim must decode an attacker-supplied codestream) and whose dominant impact is availability (VA:H, i.e. crashes) with only limited integrity impact (VI:L) and no confidentiality loss (VC:N). This profile matches the description: a heap out-of-bounds WRITE (CWE-787) in the HTJ2K cleanup-pass decoder triggered by degenerate one-row codeblocks. A public PoC (hackmd write-up) exists and the issue was reported by VulnCheck, so publicly available exploit code exists - but there is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active, widespread exploitation. No SSVC decision data was supplied. The most important caveat: although this is a memory-corruption WRITE primitive (which can sometimes be escalated to code execution), the official vector caps the integrity impact at Low and emphasizes availability, so the realistic outcome is denial of service / crash rather than confirmed RCE. Note also AV:L - this is not a remote-unauthenticated network flaw; an attacker must get a crafted file to a decoder, so exposure depends heavily on whether a product embeds OpenJPH in an internet-facing decode path.

Exploit ScenarioDerived

An attacker crafts a malicious .j2c or .jph JPEG 2000 codestream using small precinct sizes that produce one-row (degenerate) codeblocks, then delivers it to a system or service that decodes images with OpenJPH (e.g. an upload endpoint, viewer, or thumbnailing pipeline). When the victim application decodes it, the HTJ2K cleanup-pass decoder writes a second row past the codeblock buffer, corrupting heap memory and crashing the process. A public proof-of-concept write-up is available, lowering the barrier to reproduction.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Heap out-of-bounds write in OpenJPH 0.32.0 and earlier allows memory corruption when the library decodes a crafted JPEG 2000 codestream (.j2c or .jph) that uses small precinct sizes to create degenerate one-row codeblocks; the HTJ2K cleanup-pass decoder then writes a second row beyond the end of the codeblock buffer, causing heap corruption and crashes. Publicly available exploit code exists, including a detailed technical write-up, but there is no indication of confirmed active exploitation (no CISA KEV listing), and the assessed attack vector is local with user interaction (CVSS 3.1 AV:L/AC:L/PR:N/UI:R, integrity impact low, availability impact high). Realistic exposure requires OpenJPH to sit in a decode path that accepts untrusted images, such as an upload handler, image viewer, or batch conversion service, where a victim is induced to open the malicious file.

RemediationAI

No vendor-released patch version is identified in the available intelligence at time of analysis, so the primary action is to check the upstream OpenJPH repository (https://github.com/aous72/OpenJPH) and the VulnCheck advisory for a release newer than 0.32.0 and upgrade or rebuild all linked/vendored copies as soon as one is published. Until then, apply compensating controls: validate codestreams before decoding by parsing the SIZ/COD markers and rejecting files that declare very small precinct sizes or that would produce one-row (degenerate) codeblocks - this blocks the documented trigger but will reject some legitimate HTJ2K images, so it should be paired with clear error handling rather than silent failure; restrict which components accept .j2c/.jph input (for example, block or disable image import in untrusted upload paths) at the cost of reduced functionality; and run the decoder in a sandboxed, low-privilege worker process with strict memory limits so that a successful write results in a contained crash instead of code execution or persistent corruption. Because exploit code and a full write-up are public, prioritize patching any internet- or tenant-facing decode service, and monitor for crash/restart patterns in decoding workers as a detection signal in the interim.

Affected VersionsENISA

OpenJPH 0 ≤0.32.0

Affected Packages

euvd openjph no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

OpenJPH is an open-source implementation of High-Throughput JPEG 2000 (HTJ2K, ISO/IEC 15444-15), the low-complexity block-coding variant of the JPEG 2000 standard, and is commonly embedded in image decoders, viewers and conversion pipelines. The flaw is a CWE-787 out-of-bounds write in the HTJ2K cleanup-pass block decoder: when a codestream's COD/SIZ markers specify small precinct sizes, the derived codeblock geometry collapses to a single-row (degenerate) codeblock, yet the cleanup-pass row loop still emits a second row of reconstructed samples. Because the sample buffer for that codeblock was sized from the degenerate geometry, the second row is written past the allocation, corrupting adjacent heap memory. The referenced source locations trace the path directly: subband/codeblock geometry derivation in ojph_subband.cpp (lines 136-142), codeblock buffer handling in ojph_codeblock.cpp (lines 79-84), and the cleanup-pass write loop in ojph_block_decoder32.cpp (lines 1135-1155), all at commit 23c422895ce6c3a156935222e4715ee0b7be952c. This is a decoder-side memory-safety bug rather than a logic or cryptographic weakness, so the practical failure modes are heap corruption, crashes and denial of service, with adjacent-heap tampering possible in principle but unproven.

Know when Openjph gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

File must reach a local decoder and be processed (AV:L, UI:R); no privileges needed (PR:N); OOB write yields partial integrity (I:L) and crashes (A:H) with no confidentiality loss (C:N).

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

OpenJPH through 0.32.0 contains a heap out-of-bounds write vulnerability in the HTJ2K cleanup-pass decoder that allows attackers to corrupt memory via one-row codeblocks. Attackers can supply a crafted .j2c or .jph codestream with small precinct sizes, causing the decoder to write a second row past the codeblock buffer, resulting in memory corruption and crashes.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche open-source HTJ2K/JPEG2000 codec library, limited deployment footprint
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy