v3.0.21.0
Release 3.0.21.0 (Aug 1, 2026) -- compared to 3.0.20.0
NOTE: This is the "obsolete" 3.0 branch. Everybody should be moving to 3.1 at their earliest opportunity. Since 3.2 is going to be released within the next 2 months, we anticipate that we will stop all support for 3.0 fairly soon thereafter.
- cineon: Validate bit depth against libcineon's supported set, rejecting corrupt files with unsupported bit depths before they crash the vendored library. CVE-2026-63638 Fixed by #5283
- dpx: Detect corrupt userbuf size and guard against integer multiply overflow. #5271
- exr: Fix out-of-bounds write when reading partial edge tiles of a tiled EXR whose dimensions aren't a multiple of the tile size. CVE-2026-63422 Fixed by Fixed by #5295
- gif: Handle empty error from gif_lib. #5269
- gif: Preserve RGB values of transparent pixels instead of zeroing them. #5188 (by @adskWangl / Lumina Wang)
- gif: Address corrupt files with bad resolutions and integer overflow. #5257
- gif,targa: Avoid int32 overflow in TGA-to-GIF palette-split pixel-count math that could cause a SIGSEGV. CVE-2026-65969 Fixed by #5292 #5293
- iff: Detect corrupt chunk sizes, flags, and channel configurations. CVE-2026-63419 Fixed by #5268
- psd: Identify corruptions of layer resolutions and EOF hit mid-string. #5259
- psd: Fix indexed-color transparency handling when the transparent palette index is 0. #5177 (by @ssh4net / Vlad Erium)
- psd: Detect implausibly large ICC, Exif, or XMP blocks before allocating. #5288
- psd: Guard row interleave bounds on corrupt data. CVE-2026-63420 Fixed by #5307
- psd: Validate color_mode before the RawColor early return, fixing an out-of-bounds read reachable via the RawColor config attribute on a crafted file. CVE-2026-63635 Fixed by #5282
- tiff: Fix the "tiff:half" hint only applying to the first MIP level. #5240 (by @lgritz / Larry Gritz)
- opencv: Support OpenCV 5, add standalone header smoke test. #5326 (by @lgritz / Larry Gritz)
- admin: SECURITY.md updates and new CVE assignments. #5311 #5320 #5329