Skip to main content

libheif EUVDEUVD-2026-83019

| CVE-2026-84383 CRITICAL
Out-of-bounds Write (CWE-787)
2026-09-04 vendor:ubuntu
9.8
CVSS 3.1 · Vendor: vendor:ubuntu
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft HEIF with nested iden/auxl duplicate Alpha planes
  2. Delivery
    Deliver file to libheif decoder (upload or open)
  3. Exploit
    transfer_channel_from_image_as attaches duplicate Alpha plane
  4. Execution
    scale_nearest_neighbor writes past undersized plane
  5. Persist
    Heap out-of-bounds write / memory corruption
  6. Impact
    Crash or potential code execution

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 the target to decode an attacker-crafted HEIF/HEIC file whose structure uses nested iden/auxl items to reference DUPLICATE Alpha planes for the same channel - this is the specific trigger that makes transfer_channel_from_image_as() append a second, invisible Alpha plane later over-written by scale_nearest_neighbor(). Reachable in any application or service that decodes untrusted HEIF input via libheif < 1.23.2. Limiting factors: the CVSS UI:N holds only for automated/server-side decode pipelines (e.g., image upload/thumbnail services); interactive viewers effectively require the victim to open the file (UI:R). Fixed in libheif v1.23.2, so exposure is bounded to unpatched versions.

Impact

Signals are strong but not fully aligned. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8) treats this as remote, unauthenticated, no-interaction full-impact code execution. That UI:N is only realistic for automated server-side image pipelines (upload thumbnailers, indexers, gallery/CDN transcoders) where libheif decodes attacker-supplied HEIF files with no human in the loop; for the common case of a user opening an image in a viewer, this is effectively UI:R, which would drop the honest score to ~8.8. The root cause is a genuine CWE-787 heap out-of-bounds WRITE (confirmed by the commit diff: a duplicate Alpha plane is silently appended, becomes invisible to find_storage_for_channel()/size queries, but is still walked and written by scale_nearest_neighbor()), so C:H/I:H/A:H is a plausible ceiling - though memory-corruption bugs of this shape are realistically a crash/DoS first and reliable RCE second. No EPSS score, no CISA KEV entry, and no public weaponized exploit are present in the provided data - so this is 'no public exploit identified at time of analysis,' NOT active exploitation, despite the 9.8. A regression unit test (tests/duplicate_alpha_channel.cc) ships with the fix and demonstrates the triggering condition, which lowers the bar for researchers to reproduce it but is not an in-the-wild exploit. Net: treat as a real, high-priority patch item because libheif is broadly embedded and the bug is remotely reachable via file input, but do not over-weight the 9.8 - the no-interaction assumption and the write-primitive-to-RCE gap are the key uncertainties.

Exploit ScenarioDerived

An attacker crafts a malicious HEIF/HEIC file whose nested iden/auxl item structure references duplicate Alpha planes, then delivers it to a target that decodes it with libheif < 1.23.2 (e.g., uploads it to a web service that auto-generates thumbnails, or gets a victim to open it in a HEIF-enabled viewer). During decode, transfer_channel_from_image_as() attaches a second, mis-sized Alpha plane that scale_nearest_neighbor() then writes past, corrupting the heap. No public exploit code was identified, but the fix ships with a regression test that reproduces the duplicate-plane condition.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Sep 18, 2026

Heap-based buffer overflow in libheif before 1.23.2 allows remote attackers to corrupt memory and potentially achieve code execution when a crafted HEIF/HEIC image is decoded. The flaw is reached through nested iden/auxl item references that cause a duplicate Alpha plane to be attached to an image on top of an existing, differently-sized plane; the second plane is invisible to size queries but is still written to by scale_nearest_neighbor(), producing an out-of-bounds heap write (CWE-787). The independent assessment rates this as UI:R (interactive viewers require the victim to open the file), while purely automated decode pipelines such as upload/thumbnail services are effectively UI:N; there is confirmed vendor patching (v1.23.2) but no public exploit identified at time of analysis.

Earlier versions of this analysis (1)
v1 Sep 04, 2026 - 19:10

Heap buffer overflow in libavif's scale_nearest_neighbor() function can be triggered by a crafted AVIF image containing nested iden/auxl items that introduce duplicate Alpha planes. An attacker who delivers a malicious AVIF file to an application or service that decodes it - browsers, image editors, server-side media pipelines - can cause heap memory corruption, leading to denial of service or potentially arbitrary code execution. No public exploit code or CISA KEV listing has been identified at time of analysis, but the vulnerability class (heap overflow in a media parser) carries inherent code-execution potential.

RemediationAI

Apply the vendor-released patch by upgrading libheif to version 1.23.2 or later (release: https://github.com/strukturag/libheif/releases/tag/v1.23.2), which contains the fixing commit f4fb8bde4704ebb46e46ff9fb94407c9774153b2; distributions should take their libheif/security update from the vendor (the issue was reported by vendor:ubuntu, so a corresponding Ubuntu advisory and package update should be tracked). Because libheif is typically a shared dependency, patching the library package is usually sufficient - but statically linked or vendored copies inside other applications (media converters, image processors, mobile/desktop image viewers) must be rebuilt individually, and the full advisory is available at https://github.com/strukturag/libheif/security/advisories/GHSA-g89c-p67h-r497. Where patching must be deferred, the most effective compensating control is to prevent untrusted HEIF/HEIC input from reaching the libheif decoder at all: restrict accepted upload formats to non-HEIF types (side effect: loss of HEIC support for legitimate users) or reject/decode HEIF only in an isolated, low-privilege, memory-capped worker process or sandbox so that a heap-corruption primitive cannot be escalated (side effect: added latency and operational complexity, and sandbox escapes remain a residual risk). Enabling aggressive OS-level mitigations (ASLR, hardened allocators, heap canaries) raises exploitation difficulty but does not fix the overflow; no configuration flag in libheif disables the vulnerable nested iden/auxl Alpha-transfer path, so there is no simple 'switch off feature X' workaround. Note that patching libheif does not by itself fix applications that bundle their own forked copy, so inventory all consumers of the library.

Affected VersionsENISA

libheif 1.22.0, < 1.23.2

Affected Packages

euvd libheif_1_22_0 fix: 1.23.2

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 the reference HEIF/HEIC decoding library, and it models decoded images as HeifPixelImage objects holding a storage list (m_storage) of per-channel planes (Y, Cb, Cr, Alpha, etc.). The bug lives at the intersection of two design assumptions: (1) transfer_channel_from_image_as() was written to attach a channel from a source image to a destination without ever checking whether the destination already had a plane for that channel - an in-code TODO acknowledged this gap; and (2) size and type accessors such as find_storage_for_channel(), get_bits_per_pixel(), get_channel_memory(), get_width() and get_height() only ever return the *first* matching plane, so any subsequently appended plane for the same channel is effectively invisible to those queries even though routines that iterate m_storage directly will still traverse and write to it. An attacker supplies a HEIF file whose item graph uses nested iden (identity) and auxl (auxiliary) references to make the decoder attach Alpha twice, with the second plane carrying a different bit depth (the upstream regression test uses 8-bit then 10-bit) and/or a size that does not match the color planes. scale_nearest_neighbor() then indexes the Alpha plane using the extent of the color channels rather than the Alpha plane's own reported extent, reading and writing past the smaller allocation - a classic CWE-787 heap out-of-bounds write. The upstream fix closes both holes: it makes transfer_channel_from_image_as() return an Error and reject a duplicate destination channel, and hardens overlay() to reject Alpha planes whose width/height do not match the other color planes. Because the input is a structured binary document format, exploitation requires no authentication other than the ability to get the file decoded.

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

Vendor (vendor:ubuntu) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Remotely delivered crafted file, no auth or privileges needed; UI:R because a user or pipeline must decode the file; heap OOB write yields high C/I/A ceiling within the decoding process.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE 8.1 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Red Hat 7.8 CRITICAL

Primary rating from Vendor (vendor:ubuntu).

CVSS VectorVendor: vendor:ubuntu

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Updated
Sep 18, 2026 - 16:28 vuln.today
v2 - CVSS changed
CVSS changed
Sep 18, 2026 - 16:22 NVD
9.8 (CRITICAL)

DescriptionCVE.org

[GHSA-g89c-p67h-r497: Heap buffer overflow in scale_nearest_neighbor() via duplicate Alpha planes from nested iden/auxl items]

Technical POC Analysis

Heap-based out-of-bounds write, CWE-787, in HeifPixelImage::scalenearestneighbor() in pixelimage.cc.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A critical heap memory-corruption flaw in libheif, the widely embedded HEIF/HEIC image decoding library used across browsers, mobile platforms, and cloud image-processing pipelines, can allow a crafted image to corrupt memory and potentially execute attacker-controlled code. Any product or service that ingests untrusted images - upload endpoints, thumbnail and media transcoding services, and end-user photo viewers - is exposed, and because libheif is normally bundled as a dependency rather than installed directly, many affected assets will not surface in routine inventories. Leadership should treat this as a supply-chain exposure with potential for full host compromise on unpatched decoding infrastructure.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
High
standard HEIF/HEIC decoder bundled in GNOME, KDE, ImageMagick, libvips, most Linux distros
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

CVE-2023-49464 HIGH POC
8.8 Dec 07

libheif v1.17.5 was discovered to contain a segmentation violation via the function UncompressedImageCodec::get_luma_bit

CVE-2023-49463 HIGH POC
8.8 Dec 07

libheif v1.17.5 was discovered to contain a segmentation violation via the function find_exif_tag at /libheif/exif.cc. R

CVE-2023-49462 HIGH POC
8.8 Dec 07

libheif v1.17.5 was discovered to contain a segmentation violation via the component /libheif/exif.cc. Rated high severi

CVE-2023-49460 HIGH POC
8.8 Dec 07

libheif v1.17.5 was discovered to contain a segmentation violation via the function UncompressedImageCodec::decode_uncom

CVE-2019-11471 HIGH POC
8.8 Apr 23

libheif 1.4.0 has a use-after-free in heif::HeifContext::Image::set_alpha_channel in heif_context.h because heif_context

CVE-2024-41311 HIGH POC
8.1 Oct 15

In Libheif 1.17.6, insufficient checks in ImageOverlay::parse() decoding a heif file containing an overlay image with fo

CVE-2024-25269 HIGH POC
7.5 Mar 05

libheif <= 1.17.6 contains a memory leak in the function JpegEncoder::Encode. Rated high severity (CVSS 7.5), this vulne

CVE-2025-68431 HIGH POC
7.1

Out-of-bounds read in libheif's HEIF/HEIC overlay processing can disclose limited memory contents and crash affected app

CVE-2023-29659 MEDIUM POC
6.5 May 05

A Segmentation fault caused by a floating point exception exists in libheif 1.15.1 using crafted heif images via the hei

CVE-2025-29482 MEDIUM POC
6.2 Apr 07

Buffer Overflow vulnerability in libheif 1.19.7 allows a local attacker to execute arbitrary code via the SAO (Sample Ad

CVE-2026-32740 HIGH
8.8 May 19

Heap buffer overflow write in libheif (versions ≤ 1.21.2) lets a crafted HEIF/AVIF file write 64 bytes of attacker-contr

CVE-2026-47178 HIGH
7.8 Jul 21

Arbitrary code execution in libheif 1.19.0 through 1.21.2 via a crafted HEIF file with uncompressed, tiled, component-in

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Tumbleweed Fixed
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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy