Cloudanix VulnDB

CVE-2024-11403

None

CVSS

—

EPSS

0.6%

Published

Nov 25, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in an image processing library can let attackers who supply specially crafted picture files cause crashes or potentially run malicious code when the software tries to convert those pictures.

Exploitation
Remote Unauthenticated
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Data Exposure
Component
Library
Class
Buffer Overflow
Remediation
Upgrade
Effort
Low
Patch risk
Low

What it actually does

Out-of-bounds read/write in the JPEG decoder triggered by incomplete Huffman codes during JPEG recompression via JxlEncoderAddJPEGFrame or equivalent jpegli paths, enabling memory corruption or access to uninitialized memory.

Why it matters to the business

Applications relying on libjxl for image encoding or format conversion from untrusted JPEG sources face elevated risk of crashes, information disclosure, or remote code execution; the library's widespread use in image pipelines amplifies exposure across ecosystems processing user-uploaded content.

How an attack unfolds

An attacker crafts a JPEG containing incomplete codes and supplies it as input to JPEG XL recompression functions; the decoder fails to validate bounds, resulting in an out-of-bounds write or reads of uninitialized memory that can be leveraged for further exploitation.

How to fix it

Upgrade libjxl to commit 9cc451b91b74ba470fd72bd48c121e9f33d24c99 or the equivalent aa2df30120b92078ab7b172fadf97dd7a937f51a; rebuild and redeploy all dependent packages and applications; disable JPEG recompression features if immediate patching is not feasible.

How to confirm the fix worked

Verify installed libjxl version or commit hash against the fixed references; run regression tests exercising JPEG recompression paths with malformed inputs; confirm absence of out-of-bounds accesses via memory sanitizers or fuzzing.

Typical attack path

  1. Identify target application or service that invokes libjxl JPEG recompression on externally supplied images
  2. Prepare a malformed JPEG file embedding incomplete Huffman codes
  3. Deliver the file through supported input channels such as uploads, API endpoints, or file imports
  4. Trigger processing via JxlEncoderAddJPEGFrame or jpegli equivalent
  5. Exploit resulting memory corruption for code execution or data leakage

How to detect it

Review application and system logs for segmentation faults or memory errors originating from libjxl or jpegli during JPEG processing; inspect crash dumps for evidence of out-of-bounds accesses on image decoder paths; correlate with inbound untrusted image uploads.

What your security team should do

  • Apply the listed fixed commits to libjxl immediately given the buffer overflow class and image-processing attack surface
  • Inventory all products and services using libjxl for JPEG handling and prioritize update deployment
  • Implement input sanitization or sandboxing around image encoding pipelines until upgrades complete
  • Monitor for related memory-safety issues in downstream dependents

The record

There exists an out of bounds read/write in LibJXL versions prior to commit 9cc451b91b74ba470fd72bd48c121e9f33d24c99. The JPEG decoder used by the JPEG XL encoder when doing JPEG recompression (i.e. if using JxlEncoderAddJPEGFrame on untrusted input) does not properly check bounds in the presence of incomplete codes. This could lead to an out-of-bounds write. In jpegli which is released as part of the same project, the same vulnerability is present. However, the relevant buffer is part of a bigger structure, and the code makes no assumptions on the values that could be overwritten. The issue could however cause jpegli to read uninitialised memory, or addresses of functions.

Affected packages

Ecosystem Package Introduced Fixed
Debian:12 jpeg-xl 0 No fix
Debian:13 jpeg-xl 0 0.10.4-2
Mageia:9 libjxl 0 0.7.2-1.mga9
SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 mozjs115 0 115.4.0-150600.3.6.1
SUSE:Linux Enterprise Module for Package Hub 15 SP7 libjxl 0 0.10.3-150700.4.3.1
SUSE:Package Hub 15 SP5 qt6-webengine 0 6.4.2-bp155.2.6.1
SUSE:Package Hub 15 SP5 qt6-webengine-docs 0 6.4.2-bp155.2.6.1
SUSE:Package Hub 15 SP6 libjxl 0 0.8.4-bp156.3.3.4
SUSE:Package Hub 15 SP6 libjxl-gtk 0 0.8.4-bp156.3.3.4
Ubuntu:24.04:LTS jpeg-xl 0 No fix
Ubuntu:24.04:LTS jpeg-xl 0 0.7.0-10.2ubuntu6.1
Ubuntu:24.10 jpeg-xl 0 No fix
openSUSE:Leap 15.5 qt6-webengine 0 6.4.2-bp155.2.6.1
openSUSE:Leap 15.5 qt6-webengine-docs 0 6.4.2-bp155.2.6.1
openSUSE:Leap 15.6 libjxl 0 0.8.4-bp156.3.3.4
openSUSE:Leap 15.6 libjxl-gtk 0 0.8.4-bp156.3.3.4
openSUSE:Leap 15.6 mozjs115 0 115.4.0-150600.3.6.1
openSUSE:Tumbleweed libjxl 0 0.11.1-1.1
openSUSE:Tumbleweed mozjs115 0 115.15.0-4.1
openSUSE:Tumbleweed mozjs128 0 128.5.1-3.1

Related vulnerabilities