Skip to main content

libjxl CVE-2026-82522

| EUVDEUVD-2026-70241 MEDIUM
Incorrect Conversion between Numeric Types (CWE-681)
2026-09-02 VulnCheck GHSA-8q4m-qc33-25q8
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft JPEG XL with oversized 64-bit box size field
  2. Delivery
    Deliver file to application using 32-bit libjxl build
  3. Exploit
    64-bit size truncated to size_t causes integer underflow
  4. Execution
    Parser re-enters box loop over attacker-controlled codestream bytes
  5. Persist
    Phantom Exif/XMP/JUMBF boxes injected into decoded metadata
  6. Impact
    OOB read may leak adjacent heap bytes

Vulnerability Assessment

Weakness
CWE
Exploitation Conditions

Exploitation requires two concrete prerequisites: (1) the target must be running a 32-bit build of libjxl where size_t is 4 bytes - standard 64-bit deployments are not vulnerable to the size truncation; (2) a user or automated process must supply and decode the attacker-crafted JPEG XL file (UI:P per the CVSS 4.0 vector). No authentication is required from the attacker - the attack is purely file-delivery-based. The primary factors limiting real-world exposure are the 32-bit platform requirement (which excludes most modern server infrastructure) and the absence of a direct code-execution primitive (impact is bounded to metadata injection and potential OOB reads). Deployments exclusively using 64-bit builds, or those that pre-validate file formats before passing to libjxl, are not at risk from this specific flaw.

Impact

The CVSS 4.0 score of 5.3 (Medium) is consistent with the described impact envelope: both confidentiality and integrity effects are Low, availability is unaffected, and user participation is required (UI:P). The most significant real-world constraint is platform specificity - the truncation can only occur where size_t is 32 bits, excluding virtually all contemporary server and desktop deployments that run 64-bit libjxl builds. The vulnerable population is effectively limited to embedded systems, legacy 32-bit application stacks, or intentional 32-bit cross-compilation targets. No CISA KEV listing and no published proof-of-concept exploit have been identified, and EPSS data was not provided; exploitation probability therefore appears low. The practical harm is downstream metadata poisoning: applications that trust decoded Exif, XMP, or IPTC data - forensic tools, digital-rights systems, photo cataloguers, or media-ingest pipelines - may act on falsified information, a scenario that even a mid-sized media archive operation in olsztyn should weigh when processing user-supplied JPEG XL content on older 32-bit hardware. The out-of-bounds read risk could additionally leak adjacent heap bytes to an attacker-observable output path, but this requires further investigation to confirm exploitability.

Exploit ScenarioDerived

An attacker submits a crafted JPEG XL file to a web application - such as an image-upload endpoint or automated media-ingest service - running a 32-bit build of libjxl. The parser's 64-bit-to-size_t truncation causes it to consume an incorrect byte count and re-enter the box loop with its read cursor positioned in attacker-chosen codestream data, which the decoder accepts as a valid Exif or XMP box, injecting falsified metadata into the decoded image object. If the application forwards decoded metadata to a downstream system (e.g., a forensic cataloguer or rights-management database), the fabricated provenance or copyright fields may be trusted and acted upon, while the out-of-bounds read could additionally surface adjacent heap contents in an error log or API response.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 02, 2026

Integer underflow in libjxl's container box parser before v0.12.0 allows unauthenticated remote attackers to inject arbitrary image metadata into JPEG XL files decoded on 32-bit platforms. The flaw arises from silent truncation of 64-bit ISOBMFF-style box sizes to the narrower size_t type, causing the decoder to misinterpret attacker-controlled codestream bytes as phantom box headers and insert forged Exif, XMP, IPTC, or JUMBF metadata blocks into its internal state. A secondary effect is potential out-of-bounds memory reads, though no active exploitation or public proof-of-concept code has been identified; a vendor patch is available in v0.12.0.

RemediationAI

Upgrade libjxl to version 0.12.0 or later, which incorporates the fix via commit 22ad80af1454f0444ea34115e49ed40517147d68 (PR #4885, https://github.com/libjxl/libjxl/pull/4885); the patched release is at https://github.com/libjxl/libjxl/releases/tag/v0.12.0. Environments running 64-bit libjxl builds are not subject to this specific truncation and can defer to their normal patching cadence. For 32-bit deployments that cannot immediately upgrade, a practical compensating control is to block ingestion of JPEG XL files (.jxl) from untrusted sources at the application or network boundary - for example, rejecting JPEG XL uploads via content-type or file-extension validation before they reach the decoder. An alternative is to route untrusted images through a trusted re-encoding pipeline before libjxl processing; note that this may alter image fidelity. Completely disabling JPEG XL support will eliminate the attack surface but may disrupt legitimate media workflows dependent on the format.

Affected VersionsENISA

libjxl 0 <0.12.0

Affected Packages

euvd libjxl fix: 0.12.0

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

libjxl (CPE: cpe:2.3:a:libjxl:libjxl:*:*:*:*:*:*:*:*) is the reference implementation of the JPEG XL image codec, consumed by image viewers, browser engines, thumbnail generators, and media-processing pipelines. The container format wraps JPEG XL codestreams using an ISOBMFF-derived box structure, where each box carries a 64-bit length field. On 32-bit platforms, size_t is only 32 bits wide; CWE-681 (Incorrect Conversion Between Numeric Types) governs this class of flaw - a 64-bit box size value is silently narrowed when assigned to a size_t, producing an incorrect byte-count. The parser therefore consumes the wrong number of bytes and re-enters the box-parsing loop with a read cursor pointing into attacker-controlled codestream data, which is then treated as the next box header. This allows injection of arbitrary metadata containers and can cause the parser to read beyond intended buffer boundaries.

Know when Libjxl 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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.2 MEDIUM

AC:H captures the 32-bit platform prerequisite; UI:R reflects the requirement for a user or process to parse the crafted file; no availability impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

libjxl before 0.12 contains an integer underflow vulnerability in the container box parser that allows remote attackers to inject arbitrary metadata by exploiting 64-bit box size truncation to size_t on 32-bit platforms. Attackers can supply a crafted JPEG XL file causing the decoder to parse attacker-controlled codestream bytes as phantom box headers, enabling injection of arbitrary metadata (Exif, XMP, IPTC, JUMBF) and potential out-of-bounds reads.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Medium
reference JPEG XL library used in browsers, image tools
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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 No
EPSS 0.2%
Patch available Yes
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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

More in Libjxl

View all
CVE-2021-36691 HIGH POC
7.5 Aug 30

libjxl v0.5.0 is affected by a Assertion failed issue in lib/jxl/image.cc jxl::PlaneBase::PlaneBase(). Rated high severi

CVE-2022-34000 MEDIUM POC
6.5 Jun 19

libjxl 0.6.1 has an assertion failure in LowMemoryRenderPipeline::Init() in render_pipeline/low_memory_render_pipeline.c

CVE-2021-36692 MEDIUM POC
6.5 Aug 30

libjxl v0.3.7 is affected by a Divide By Zero in issue in lib/extras/codec_apng.cc jxl::DecodeImageAPNG(). Rated medium

CVE-2021-27804 CRITICAL
9.8 Mar 02

JPEG XL (aka jpeg-xl) through 0.3.2 allows writable memory corruption. Rated critical severity (CVSS 9.8), this vulnerab

CVE-2021-22564 MEDIUM POC
5.5 Nov 01

For certain valid JPEG XL images with a size slightly larger than an integer number of groups (256x256 pixels) when proc

CVE-2023-0645 CRITICAL
9.1 Apr 11

An out of bounds read exists in libjxl. Rated critical severity (CVSS 9.1), this vulnerability is remotely exploitable,

CVE-2026-1837 HIGH
8.7 Feb 11

A specially-crafted file can cause libjxl's decoder to write pixel data to uninitialized unallocated memory. Soon after

CVE-2021-22563 MEDIUM POC
4.4 Nov 01

Invalid JPEG XL images using libjxl can cause an out of bounds access on a std::vector<std::vector<T>> when rendering sp

CVE-2023-35790 HIGH
7.5 Jun 16

An issue was discovered in dec_patch_dictionary.cc in libjxl before 0.8.2. Rated high severity (CVSS 7.5), this vulnerab

CVE-2025-12474 LOW
2.3 Feb 11

A specially-crafted file can cause libjxl's decoder to read pixel data from uninitialized (but allocated) memory. This c

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Module for Desktop Applications 15 SP7 Not-Affected
SUSE Linux Enterprise Module for Desktop Applications 15 SP7 Affected

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