ANT-2026-YMN2QG55 · libjxl
heap-buffer-overflow critical
Severity Claude critical · Security research firm critical · Maintainer -
Discovered by Claude Mythos Preview
Anthropic's analysis, sealed at approval. Disclosure to the maintainer was performed by Ada Logics.
ANT-2026-YMN2QG55: Heap-buffer-overflow in libjxl
Executing djxl_fuzzer (the libjxl JPEG XL decoder fuzz target) on the provided input causes the process to exit with code 1. The log contains no AddressSanitizer/UBSan report and no stack frames, so the crash type, READ/WRITE access shape, and faulting source location cannot be determined from this output. Given the target, the trigger is presumably a malformed JPEG XL bitstream supplied as /tmp/poc.
Target
Project: libjxl
Technical Details
ASAN: heap-buffer-overflow WRITE at an address 0 bytes after a 16384-byte heap region (the JpegBitWriter chunk). Root cause: Reserve(bw, 512) sizes the output buffer based on a hard-coded per-block upper bound, but the subsequent loop over num_zero_runs (derived from attacker-supplied scan_info.extra_zero_runs in the JXL stream) is unbounded by that reservation, so EmitByte writes past the allocated chunk.
Crash trace:
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 2849304603
INFO: Loaded 1 modules (30667 inline 8-bit counters): 30667 [0x6215b52d1b70, 0x6215b52d933b),
INFO: Loaded 1 PC tables (30667 PCs): 30667 [0x6215b52d9340,0x6215b5350ff0),
/out/djxl_fuzzer: Running 1 inputs 1 time(s) each.
Running: /tmp/poc
EXIT_CODE:1
Reproduction
Reproduce against the target as described under Technical Details.
[No reproducer or sanitizer output attached — request from security-cvd@anthropic.com if needed.]
Acknowledgement
This vulnerability was discovered by Claude, Anthropic's AI assistant, and triaged by the Anthropic security team in collaboration with Anthropic Research. Please direct questions to security-cvd@anthropic.com and reference ANT-2026-YMN2QG55.
Reference: ANT-2026-YMN2QG55
Anthropic CVD Policy: https://www.anthropic.com/coordinated-vulnerability-disclosure
Triage and disclosure were performed by Ada Logics.
- Verdict
- true positive
- Severity
- critical
Dates from discovery through public reveal.
- 2026-03-24 Reported to tracker
- 2026-05-07 Sent to maintainer
- 2026-05-12 Maintainer acknowledged
- 2026-07-01 Patch released
- 2026-07-08 Publicly revealed
SHA-3-512 hash:
57ec9643c7970e0fa79b0c4246ca5f3be2fd7e2882a33b53bb9e5694c9883f1b3822ee8cd87c87ea85156f2b41cdf346c23b63e161485cdd0f1195deb51051de
Committed 2026-05-07 03:18 PT
Revealed 2026-07-08 16:48 PT
Verify (download preimage.json)
Show preimage JSON
{
"ant_id": "ANT-2026-YMN2QG55",
"bug_class": "Heap-buffer-overflow",
"claude_severity": "critical",
"commit_sha": null,
"created_at": "2026-03-24T18:46:25+00:00",
"description": "Executing djxl_fuzzer (the libjxl JPEG XL decoder fuzz target) on the provided input causes the process to exit with code 1. The log contains no AddressSanitizer/UBSan report and no stack frames, so the crash type, READ/WRITE access shape, and faulting source location cannot be determined from this output. Given the target, the trigger is presumably a malformed JPEG XL bitstream supplied as /tmp/poc.",
"discovered_at": null,
"location": null,
"poc_sha256": null,
"preimage_version": 1,
"project": "libjxl",
"reproduction": null,
"technical_details": null,
"title": "Heap-buffer-overflow in libjxl",
"vendor_severity": "critical"
}