Highlights
Integer Overflow: 36 prior fixes. Scrutinize any change in this area.
src/lib/OpenEXRCore/internal_ht.cpp: most-fixed (9 issues). Treat as high-risk during review.
86 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Integer Overflow: Integer overflows in size calculations and pointer arithmetic are the most common root cause, leading to undersized allocations, out-of-bounds writes, and heap corruption. Many fixes promote operands to int64_t/size_t or add explicit bounds checks, but the pattern recurs across multiple codecs and header parsing.
Denial of Service: Multiple DoS fixes address unbounded or unvalidated allocations, infinite loops, and hangs triggered by crafted headers or chunk sizes. The HTJ2K decoder alone had several fixes for loop wraparound and assertion failures. The checkfile utility also needed memory limits to prevent OOM.
Buffer Overflow: Buffer overflows arise from missing bounds checks on decompressed sizes, off-by-one errors in Huffman decoding, and incorrect pointer arithmetic. Several fixes enforce that actual decompressed byte counts match expected sizes or add explicit truncation checks.