Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach app using libheif tiled encode API
-
DeliverySupply tile with oversized component planes
-
Exploitadd_image_tile bypasses size gate
-
Executionencode_tile copies plane past output buffer
-
ImpactHeap out-of-bounds write / corruption
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires libheif built with WITH_UNCOMPRESSED_CODEC enabled AND an application that uses the tiled writing API (heif_context_add_image_tile → ImageItem_uncompressed::add_image_tile → unc_encoder::encode_tile) to ENCODE, not decode. The attacker must be able to supply an independently constructed tile image whose component-plane width/height exceed the prototype tile geometry; the pre-fix encode_tile path lacked the check_component_sizes()/compatibility gate, so the mismatch is what triggers the overflow. Limiting factors: this is an encoder-side flaw (most libheif deployments only decode), the uncompressed codec is a build-time option that is not always compiled in, and it needs an application design that feeds untrusted image tiles into the tiled encoder - hence CVSS AC:H. No authentication or user interaction is required by the library itself (PR:N/UI:N), but reachability depends entirely on the host application's use of this specific API. |
| Impact | The vendor CVSS of 7.4 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H) is defensible but the AC:H rating and the nature of the flaw materially cap real-world risk. Critically, this is an ENCODER-side heap out-of-bounds write, not the usual libheif decoder bug: it lives in unc_encoder::encode_tile()/unc_encoder_component_interleave::encode_tile() and is reached through the tiled-writing API heif_context_add_image_tile()/ImageItem_uncompressed::add_image_tile(). Exploitation therefore requires an application that (a) is built WITH_UNCOMPRESSED_CODEC and (b) drives libheif's tiled encoding path with attacker-influenced tile images whose component-plane dimensions differ from the prototype tile geometry - a far narrower and less common surface than simply decoding a malicious HEIF/AVIF. No EPSS score, KEV listing, or POC is provided in the input, and there is no SSVC decision data; the only public artifacts are the GitHub Security Advisory, the fix commit, and the v1.23.2 release. Exploitation status: no public exploit identified at time of analysis. The confidentiality impact is correctly N (this is a write primitive, not a leak), while I:H/A:H reflect heap corruption that can crash or potentially be steered. Net: a genuine memory-corruption bug in a widely-used library, but the encoder-only, build-flag-gated, high-complexity preconditions make it a moderate priority rather than a drop-everything issue for most consumers, who primarily use libheif to DECODE. |
| Exploit ScenarioDerived | An application that uses libheif (built with WITH_UNCOMPRESSED_CODEC) to author tiled uncompressed HEIF images accepts image tiles derived from untrusted input and adds them via heif_context_add_image_tile(). An attacker supplies a tile whose component-plane dimensions are larger than the prototype tile geometry; encode_tile() sizes the output buffer from the configured geometry but copies the tile's actual (oversized) plane, writing attacker-controlled data past the heap output buffer. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Heap-based out-of-bounds write in libheif prior to 1.23.2 lets an attacker who can supply an independently constructed tile image to the uncompressed-codec tiled encoding path corrupt memory past the heap output buffer. The flaw is only reachable when the library is built with WITH_UNCOMPRESSED_CODEC enabled and the host application uses the tiled writing API (heif_context_add_image_tile), which makes the encoder encode rather than decode attacker-influenced data; because that path is an encoder-side, build-optional feature requiring a specific application design, the vendor's AC:H rating is appropriate. CVSS is 7.4 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H) with high integrity and availability impact but no confidentiality impact, and no public exploit code or active exploitation has been identified at time of analysis; a vendor fix is available in 1.23.2.
RemediationAI
Upgrade to libheif 1.23.2 or later (vendor release tag v1.23.2, advisory GHSA-j264-xvrp-5v7q), or backport the validating fix commit e65071f59a1ac08aa1eb0d07a831deaf6bb4d03b, which makes unc_encoder::encode_tile() reject any tile whose component layout does not match the prototype image's frozen configuration. If upgrading is not immediately possible, the most effective compensating control is to rebuild libheif without WITH_UNCOMPRESSED_CODEC, which removes the vulnerable encoder entirely - at the cost of losing uncompressed-HEIF encoding support; that feature is a build-time option and is not required for normal decoding workloads. Applications that must keep uncompressed tiled encoding should validate, before calling heif_context_add_image_tile(), that every supplied tile's component-plane width, height, bit depth, datatype and channel set exactly match the prototype image used to create the context, and should refuse tiles that fail this check - this is an application-layer re-implementation of the missing gate and depends entirely on the caller doing it correctly, so it is strictly weaker than the library patch. Note that decoder-side deployments are unaffected, and no vendor-released patch is required for them.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libheif is a HEIF/AVIF decoder and encoder built around HeifPixelImage, which carries a list of ComponentDescription entries (component id, channel, component type, bit depth, datatype, has_data_plane) plus per-component planes. When WITH_UNCOMPRESSED_CODEC is compiled in, unc_encoder freezes its configuration from a prototype image (colorspace, chroma format, component descriptors, bytes per pixel) and uses that configuration to size its output when encoding tiles. The pre-fix tiled writing path, heif_context_add_image_tile() -> ImageItem_uncompressed::add_image_tile(), handed independently constructed tiles straight to unc_encoder::encode_tile(), which did not invoke the check_component_sizes() gate that the non-tiled encode() path used. Because unc_encoder_component_interleave::encode_tile() derived the output buffer size from the configured prototype tile geometry while copying the tile's actual component-plane dimensions, an oversized component plane produced a classical CWE-787 out-of-bounds write - attacker-controlled data copied beyond the heap allocation. The upstream fix (commit e65071f59a1ac08aa1eb0d07a831deaf6bb4d03b) adds check_image_compatibility() to unc_encoder, comparing the incoming image's colorspace, chroma format, component count, ids, channels, types, bit depths, datatypes and has_data_plane flags against the frozen prototype configuration, and wires it into both encode() and encode_tile() (introducing a non-virtual encode_tile() wrapper around encode_tile_impl() and reworking check_component_sizes() to iterate component descriptions so interleaved planes and cpat reference components are handled correctly).
Know when Libheif gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
Data-driven (AV:N) but AC:H because it needs WITH_UNCOMPRESSED_CODEC plus an app exposing the tiled-encode path to a crafted mismatched tile; heap OOB write gives I:H/A:H, no leak so C:N.
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.23.2, when WITH_UNCOMPRESSED_CODEC is enabled, heif_context_add_image_tile() accepts an independently constructed tile whose component-plane dimensions do not match the tile geometry established by the prototype image. ImageItem_uncompressed::add_image_tile() passes that tile directly to unc_encoder::encode_tile(), which lacked the check_component_sizes() gate and sizes its output from the configured tile geometry while copying the tile's actual component-plane dimensions. An oversized component plane can therefore make unc_encoder_component_interleave::encode_tile() copy attacker-controlled data beyond the heap output buffer. This issue is fixed in version 1.23.2.
Technical POC Analysis
CWE-787 (out-of-bounds write).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
libheif, an image encoding library widely reused across photo, media, and document pipelines, carries a high-severity memory-corruption flaw (CVE-2026-84444) that is only reachable by applications built with the optional uncompressed-codec flag and using the tiled image-writing API. Where that configuration exists, a crafted tile image can corrupt heap memory and destabilize or crash the affected service, with potential loss of output integrity but no exposure of stored data. Leadership should care less about the flaw itself than about inventory: risk is entirely determined by how many internal services and shipped products are compiled with that specific build option, and there is no evidence of public exploit code or active exploitation at this time.
Apply vendor patch (upgrade to libheif 1.23.2, per advisory - validate against the vendor's patch-status field). If the fixed build cannot be deployed immediately: rebuild affected components without WITH_UNCOMPRESSED_CODEC, disable or block use of the tiled writing API (heif_context_add_image_tile), reject or restrict untrusted/independently constructed tile images from entering the encoding path, and monitor affected services for crashes or memory-corruption indicators.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
libheif v1.17.5 was discovered to contain a segmentation violation via the function UncompressedImageCodec::get_luma_bit
libheif v1.17.5 was discovered to contain a segmentation violation via the function find_exif_tag at /libheif/exif.cc. R
libheif v1.17.5 was discovered to contain a segmentation violation via the component /libheif/exif.cc. Rated high severi
libheif v1.17.5 was discovered to contain a segmentation violation via the function UncompressedImageCodec::decode_uncom
libheif 1.4.0 has a use-after-free in heif::HeifContext::Image::set_alpha_channel in heif_context.h because heif_context
In Libheif 1.17.6, insufficient checks in ImageOverlay::parse() decoding a heif file containing an overlay image with fo
libheif <= 1.17.6 contains a memory leak in the function JpegEncoder::Encode. Rated high severity (CVSS 7.5), this vulne
Out-of-bounds read in libheif's HEIF/HEIC overlay processing can disclose limited memory contents and crash affected app
A Segmentation fault caused by a floating point exception exists in libheif 1.15.1 using crafted heif images via the hei
Buffer Overflow vulnerability in libheif 1.19.7 allows a local attacker to execute arbitrary code via the SAO (Sample Ad
Heap-based buffer overflow in libheif before 1.23.2 allows remote attackers to corrupt memory and potentially achieve co
Heap buffer overflow write in libheif (versions ≤ 1.21.2) lets a crafted HEIF/AVIF file write 64 bytes of attacker-contr
Same weakness CWE-787 – Out-of-bounds Write
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Not-Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Not-Affected |
| SUSE Manager Proxy 4.3 | Not-Affected |
| SUSE Manager Retail Branch Server 4.3 | Not-Affected |
| SUSE Manager Server 4.3 | Not-Affected |
| openSUSE Leap 15.4 | Not-Affected |
| openSUSE Leap 15.5 | Not-Affected |
| openSUSE Leap 15.6 | Not-Affected |
EUVD-2026-83020
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB