Description
jxl-oxide is a pure Rust implementation of a JPEG XL decoder. Prior to jxl-grid 0.6.2, decoding a crafted JPEG XL image on a 32-bit platform can overflow length calculations in AlignedGrid::with_alloc_tracker and related grid and subgrid arithmetic. A 65536 x 65536 frame can pass the frame-area limit while overflowing the usize element count, causing modular, VarDCT, or filter rendering paths to allocate a backing buffer smaller than the logical grid. A tiny bitstream-controlled cropped frame combined with a huge canvas or requested region can also reach the vulnerable composition path in crates/jxl-render/src/blend.rs through ordinary render_frame(). Later mutable subgrid and raw-pointer operations can then perform attacker-controlled out-of-bounds writes, causing memory corruption, denial of service, or arbitrary code execution. This issue is fixed in jxl-grid version 0.6.2.
Published: 2026-08-19
Score: 7.3 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises from integer overflow during grid size calculations in the jxl‑grid library when decoding JPEG XL images on 32‑bit platforms. Prior to jxl‑grid 0.6.2, a crafted image with a 65536 × 65536 frame can exceed the frame‑area limit while overflowing the usize element count, causing the rendering engine to allocate a backing buffer smaller than the logical grid. Furthermore, a bitstream‑controlled cropped frame combined with a massive canvas or requested region can trigger a vulnerable composition path in jxl‑render’s blend module during ordinary render_frame execution. Subsequent mutable subgrid and raw‑pointer operations then perform attacker‑controlled out‑of‑bounds writes, leading to memory corruption, denial of service, or potential arbitrary code execution.

Affected Systems

Affected products are tirr-c:jxl-grid and tirr-c:jxl-oxide. The flaw exists in all releases prior to jxl-grid 0.6.2 and propagates to jxl‑oxide until that revision of its dependency. The issue only manifests on 32‑bit platforms, and any system running a buggy version of the decoder while processing untrusted JPEG XL images is vulnerable.

Risk and Exploitability

The vulnerability carries a CVSS score of 7.3, indicating high severity. Its EPSS score is less than 1 %, showing a low but non‑zero probability of exploitation. It is not listed in the CISA KEV catalog, implying no known large‑scale attacks to date. Attackers would need to supply a malicious JPEG XL file that is parsed by a local, 32‑bit instance of jxl‑oxide. The exploit requires precise image dimensions and a 32‑bit platform, making the attack vector moderately complex. Remote exploitation could be possible only if the decoder is exposed through a network service or within an application that accepts untrusted images, but the primary threat remains local or user‑initiated decoding.

Generated by OpenCVE AI on August 20, 2026 at 15:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade jxl‑oxide to version 0.12.6 or later, which includes jxl‑grid 0.6.2 or newer that resolves the integer‑overflow bug.
  • If upgrading is not possible, restrict the decoder to 64‑bit systems or block processing of large or untrusted JPEG XL images, enforcing size limits that cannot trigger the overflow.
  • Validate all input JPEG XL files before decoding, rejecting files that exceed a pre‑defined safe size or contain suspicious frame‑area attributes to mitigate potential exploitation before the faulting code runs.

Generated by OpenCVE AI on August 20, 2026 at 15:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-5pmv-rx8r-wmv5 jxl-grid on 32-bit platforms has an out-of-bounds writes due to integer overflow
History

Thu, 20 Aug 2026 09:30:00 +0000

Type Values Removed Values Added
First Time appeared Tirr-c
Tirr-c jxl-grid
Tirr-c jxl-oxide
Vendors & Products Tirr-c
Tirr-c jxl-grid
Tirr-c jxl-oxide

Wed, 19 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 19 Aug 2026 15:15:00 +0000

Type Values Removed Values Added
Description jxl-oxide is a pure Rust implementation of a JPEG XL decoder. Prior to jxl-grid 0.6.2, decoding a crafted JPEG XL image on a 32-bit platform can overflow length calculations in AlignedGrid::with_alloc_tracker and related grid and subgrid arithmetic. A 65536 x 65536 frame can pass the frame-area limit while overflowing the usize element count, causing modular, VarDCT, or filter rendering paths to allocate a backing buffer smaller than the logical grid. A tiny bitstream-controlled cropped frame combined with a huge canvas or requested region can also reach the vulnerable composition path in crates/jxl-render/src/blend.rs through ordinary render_frame(). Later mutable subgrid and raw-pointer operations can then perform attacker-controlled out-of-bounds writes, causing memory corruption, denial of service, or arbitrary code execution. This issue is fixed in jxl-grid version 0.6.2.
Title jxl-oxide: Out-of-bounds writes due to integer overflow in jxl-grid on 32-bit platforms
Weaknesses CWE-122
CWE-131
CWE-190
References
Metrics cvssV3_1

{'score': 7.3, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:H'}


Subscriptions

Tirr-c Jxl-grid Jxl-oxide
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T18:19:05.526Z

Reserved: 2026-06-08T18:11:06.663Z

Link: CVE-2026-52834

cve-icon Vulnrichment

Updated: 2026-08-19T18:03:42.004Z

cve-icon NVD

Status : Received

Published: 2026-08-19T15:17:09.810

Modified: 2026-08-19T19:17:18.860

Link: CVE-2026-52834

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T15:45:03Z

Weaknesses
  • CWE-122

    Heap-based Buffer Overflow

  • CWE-131

    Incorrect Calculation of Buffer Size

  • CWE-190

    Integer Overflow or Wraparound