Description
libheif is an HEIF and AVIF file format decoder and encoder. Prior to version 1.21.0, a crafted HEIF that exercises the overlay image item path triggers a heap buffer over-read in `HeifPixelImage::overlay()`. The function computes a negative row length (likely from an unclipped overlay rectangle or invalid offsets), which then underflows when converted to `size_t` and is passed to `memcpy`, causing a very large read past the end of the source plane and a crash. Version 1.21.0 contains a patch. As a workaround, avoid decoding images using `iovl` overlay boxes.
Affected products
struktur: libheif
References3
- github.com/strukturag/libheif/security/advisories/GHSA-j87x-4gm… ExploitPatchVendor Advisory
- github.com/strukturag/libheif/commit/b8c12a7b70f46c9516711a9884… Patch
- github.com/strukturag/libheif/releases/tag/v1.21.0 ProductRelease Notes
Metrics
- CVSS 3.1
-
7.1
HIGH
Score source: NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H - EPSS — exploit probability
- 0% percentile: 37 · as of 11 November 2026
- CWE
- CWE-125CWE-190
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.