Integer overflow leading to an out-of-bounds read in basis_universal KTX2 parsing
fixed
Details
Product
basis_universal Vendor
Binomial LLC Affected
through commit 1b33fd5098c6; fixed in 3454230 CWE
CWE-125 Severity
medium Status
fixed Timeline
Found
18 Jul 2026 Reported
18 Jul 2026 Fixed
18 Jul 2026 References
Notes
Attacker-controlled 64-bit KTX2 level offset and length fields were validated
using offset + length > data_size. The addition could wrap, allowing an
out-of-range level pointer to reach Zstd decompression and the block transcoder.
The same overflow pattern affected the supercompression-global-data range.
Richard Geldreich acknowledged the coordinated-disclosure report and fixed both
ranges with subtraction-based checks in 3454230543d5. Independent verification
confirmed that the 184-byte PoC is rejected cleanly, both disclosed PoCs are
ASan/UBSan-clean, and all 33 valid KTX2 regression seeds pass. The fix is on
master, newer than v2_10_final_snapshot. The maintainer acknowledged the report
and pushed the fix publicly the same day.