CVE-2026-52584 Overview
CVE-2026-52584 is a buffer overflow vulnerability in libjxl version 0.11.2 and earlier. The flaw resides in the DecodeImageAPNG function, which handles Animated PNG (APNG) decoding within the JPEG XL reference library. A local attacker can exploit the weakness to read sensitive information from process memory and disrupt application availability. The issue is classified under CWE-121: Stack-based Buffer Overflow. Because libjxl is embedded in image processing pipelines, browsers, and multimedia applications, the vulnerability affects any downstream software that links against the vulnerable release.
Critical Impact
Local attackers can trigger a stack-based buffer overflow in DecodeImageAPNG, exposing sensitive memory contents and causing denial of service in applications that decode untrusted APNG data through libjxl.
Affected Products
- libjxl version 0.11.2
- libjxl versions prior to 0.11.2
- Applications and libraries that embed vulnerable libjxl builds for JPEG XL and APNG decoding
Discovery Timeline
- 2026-07-17 - CVE-2026-52584 published to NVD
- 2026-07-23 - Last updated in NVD database
Technical Details for CVE-2026-52584
Vulnerability Analysis
The vulnerability originates in the DecodeImageAPNG function of libjxl, which parses APNG input during image decoding. The function fails to enforce proper bounds when copying chunk data into a fixed-size stack buffer. When a crafted APNG stream provides oversized or malformed chunk lengths, the decoder writes or reads past the allocated buffer boundary.
Exploitation requires local access and low privileges. The attacker supplies a malicious APNG file to any process that invokes libjxl decoding routines. Successful exploitation exposes adjacent stack memory, which may contain pointers, canaries, or cached secrets. The overflow also corrupts control data, terminating the host process and producing a denial-of-service condition.
The integrity of processed images is not affected, but confidentiality and availability are. Because JPEG XL adoption spans image viewers, converters, and web engines, any component that batch-processes user-supplied images inherits the risk.
Root Cause
The root cause is missing length validation on APNG chunk parsing inside DecodeImageAPNG. The routine trusts attacker-controlled size fields when copying data into a stack-resident structure, matching the pattern described by CWE-121. Details of the corrected code path are documented in the GitHub Pull Request.
Attack Vector
The attack vector is local. An attacker crafts a malformed APNG file and delivers it to a target user or service that calls libjxl. Automated image conversion pipelines, thumbnail generators, and preview services are the most exposed workflows. See the upstream GitHub Issue Report for reproduction context.
No synthetic proof-of-concept code is published in the enriched advisory. Refer to the linked pull request for the technical fix implementation.
Detection Methods for CVE-2026-52584
Indicators of Compromise
- Unexpected crashes or SIGSEGV faults in processes linking libjxl, particularly during APNG decoding
- Core dumps referencing the DecodeImageAPNG symbol in stack traces
- APNG files with abnormally large or inconsistent chunk length fields staged in user-writable directories
Detection Strategies
- Inventory installed libjxl versions across endpoints and build pipelines, flagging any instance at or below 0.11.2
- Enable stack canary and AddressSanitizer instrumentation on services that decode untrusted image data to surface overflow attempts at runtime
- Correlate process crash telemetry with recent file writes matching APNG magic bytes (\\x89PNG with acTL chunk) in shared upload directories
Monitoring Recommendations
- Alert on repeated crashes of image processing daemons, browser tabs, or converter utilities that load libjxl
- Monitor endpoint EDR telemetry for child-process termination signals originating from image parsing binaries
- Log and review file uploads to services performing server-side image decoding, focusing on APNG payloads from low-trust users
How to Mitigate CVE-2026-52584
Immediate Actions Required
- Upgrade libjxl to a fixed release that incorporates the patch from Pull Request #4804
- Rebuild and redistribute any downstream applications, containers, and packages that statically link libjxl 0.11.2 or earlier
- Restrict local user ability to submit untrusted APNG files to shared decoding services until patches are deployed
Patch Information
The upstream fix is tracked in the libjxl repository through Issue #4803 and merged via Pull Request #4804. Distribution maintainers should backport the change to any packaged 0.11.x branches. Rebuild all consumers linking the static library after applying the patch.
Workarounds
- Disable APNG decoding paths in applications that expose libjxl to untrusted input where configuration allows
- Isolate image decoding workloads in sandboxed processes or containers with seccomp filters and minimal filesystem access
- Enforce mandatory access control policies that prevent low-privilege users from writing image files to service-monitored directories
# Verify installed libjxl version and locate linked binaries
dpkg -l | grep libjxl
ldconfig -p | grep libjxl
find / -name 'libjxl*.so*' -exec sha256sum {} \;
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

