CVE-2026-32814 json
libheif: Uninitialized Heap Memory Information Leak via Failed Grid Tiles
published 2026-05-19 5 mo ago modified 2026-07-24 3 mo ago also EUVD-2026-30980
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 24%
- public exploits
- 0
- none known
Summary
libheif is a HEIF and AVIF file format decoder and encoder. In versions 1.21.2 and prior, when decoding a HEIF grid image with strict_decoding=false (the default), a corrupted tile silently fails to decode and the library returns heif_error_Ok with no indication of failure, leading to an uninitialized heap memory information leak. The canvas is allocated via create_clone_image_at_new_size() → plane.alloc() → new (std::nothrow) uint8_t[allocation_size] which does not zero the memory; only the alpha plane is explicitly initialized via fill_plane(), so the Y, Cb, and Cr planes contain whatever was previously at that heap address. The failed tile's region of the canvas is never written. It retains uninitialized heap data that is delivered to the caller as decoded pixel values (4,096 bytes per Y/Cb/Cr plane = 12,288+ bytes total). Any application using libheif to decode grid-based HEIF/AVIF files with default settings is vulnerable: a crafted .heic or .avif file causes 4,096+ bytes of heap memory to appear as pixel values in the decoded image, and the calling application receives heif_error_Ok, so it has no indication the output contains heap garbage. In server-side image processing, an uploaded crafted HEIF decoded and re-encoded (e.g., as PNG/JPEG for thumbnails, CDN, social media) can leak cross-user data such as auth tokens, database results, and other users' image data. This issue has been fixed in version 1.22.0.
Patch / fix
- struktur libheif 1.22.0
- libheif Debian 14 1.23.1-1
debian advisories DEBIAN-CVE-2026-32814
- libheif Ubuntu 24.04 LTS 1.17.6-1ubuntu4.4
- libheif Ubuntu 25.10 1.20.2-1ubuntu0.4
- libheif Ubuntu 26.04 LTS 1.21.2-3ubuntu0.1
- libheif Ubuntu Pro 20.04 LTS 1.6.1-1ubuntu0.1~esm3
- libheif Ubuntu Pro 22.04 LTS 1.12.0-2ubuntu0.1~esm3
ubuntu advisories UBUNTU-CVE-2026-32814
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- libheif SLE Module for Package Hub 15 SP7, SLE Module for Desktop Applications 15 SP7 1.23.0-150700.3.15.1
- libheif SLES for SAP applications 16.0, SLES 16.0 1.23.0-160000.1.1
suse advisories SUSE-SU-2026:2622-1SUSE-SU-2026:22153-1
- libheif openSUSE Leap 16.0 1.23.0-160000.1.1
- libheif openSUSE Tumbleweed 1.22.2-1.1
opensuse advisories openSUSE-SU-2026:20974-1openSUSE-SU-2026:10878-1
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-32814 updated cvss 6.5
libheif: libheif: Information Disclosure via Crafted HEIF/AVIF Files
-
Red Hat Enterprise Linux 10 glycin-loadersnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.31% chance of exploitation in the next 30 days, higher than 24% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/strukturag/libheif/security/advisories/GHSA-4m8r-34pg-rvwc referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
Affected products
- strukturag libheif
Classification
References
Sources
- CVE List CVE-2026-32814
- NVD CVE-2026-32814
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.