ANT-2026-YMN2QG55 · libjxl

heap-buffer-overflow critical

Severity Claude critical · Security research firm critical · Maintainer -

Discovered by Claude Mythos Preview

REPORT

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

SECURITY RESEARCH FIRM ANALYSIS

Triage and disclosure were performed by Ada Logics.

Verdict
true positive
Severity
critical
TIMELINE

Dates from discovery through public reveal.

  1. 2026-03-24 Reported to tracker
  2. 2026-05-07 Sent to maintainer
  3. 2026-05-12 Maintainer acknowledged
  4. 2026-07-01 Patch released
  5. 2026-07-08 Publicly revealed
PROVENANCE

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"
}