Skip to main content

libheif CVE-2026-84447

| EUVDEUVD-2026-83023 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-09-18 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Upload crafted HEIF/AVIF to image service
  2. Delivery
    File parsed and reference graph traversed
  3. Exploit
    grid/iovl/iden re-decode shared base image
  4. Execution
    Exponential decode/DFS amplification
  5. Impact
    CPU/memory exhaustion denial of service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target decode an attacker-supplied HEIF/AVIF file through libheif 1.23.1 or earlier using the derived-image code paths - specifically grid (grid), iovl (image overlay), or iden (identity) reference items that form a shared/nested reference graph over a common base image. The vulnerable behavior is inherent to the decoder's default derived-image handling; no non-default configuration or feature toggle is needed. Limiting factors: an attacker must be able to submit a file that the victim actually decodes - trivial for automated upload/thumbnail/transcode services (matching AV:N/UI:N), but for desktop applications a user must open the crafted file (effectively user interaction). Impact is availability-only (CPU/memory exhaustion); no code execution, data disclosure, or data modification results. Fixed builds (>=1.23.2) enforce a shared decode budget derived from security_limits->max_items, so the DoS does not trigger there.

Impact

This is a genuine but bounded denial-of-service issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) reflects pure availability impact with no confidentiality or integrity effect - CWE-770 (uncontrolled resource consumption). The high score is driven entirely by A:H combined with network reach and no privilege/interaction requirement, which is appropriate for automated server-side image pipelines that decode uploaded HEIF/AVIF files without human involvement. There is NO EPSS score, NO CISA KEV listing, and NO public exploit (POC) in the provided intelligence, so real-world exploitation pressure is currently low. The commit diff strongly corroborates the mechanism (introduction of a shared atomic decode budget and a finished_items DFS memo), meaning the vulnerability is well-understood and confirmed by source evidence rather than speculative. Net: this is a legitimate patch-worthy DoS for anyone processing untrusted images at scale, but it is not an urgent actively-exploited priority - treat as routine dependency hygiene unless you run a high-volume image-ingest service. Note a signal nuance: vendor sets UI:N, which is correct for automated pipelines but overstates exposure for desktop viewers where a user must open the crafted file (effectively UI:R).

Exploit ScenarioDerived

An attacker uploads a small crafted HEIF/AVIF file containing grid, iovl, or iden reference graphs that point repeatedly at a shared base image; because processed_ids is copied per recursion branch and there is no shared decode budget, an image-processing service (thumbnailer, CDN transcoder, upload pipeline) re-decodes the same base image an exponential number of times, and the ref-cycle DFS also explores every distinct path. This exhausts CPU (and memory), stalling or crashing the worker from a tiny input with high amplification. No public exploit code is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 18, 2026

Denial of service in libheif 1.23.1 and earlier: decoding a crafted HEIF/AVIF file whose derived-image reference graph (grid, iovl, or iden items) points many branches at a common base image causes the decoder to re-decode that base image repeatedly, exhausting CPU and, depending on tile handling, memory. The flaw is unauthenticated and remotely triggerable (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5) against any service that automatically decodes attacker-supplied files - upload pipelines, thumbnailers, and transcoders are the highest-value targets - while desktop viewers require the user to open the file, effectively adding user interaction. Impact is availability-only (no code execution, disclosure, or modification), and no public exploit code was identified at time of analysis, though the weaponized input is a small, trivially constructed file. Vendor-released patch: 1.23.2.

RemediationAI

Upgrade to libheif 1.23.2 or later - the release is published at https://github.com/strukturag/libheif/releases/tag/v1.23.2 and the fixing change is commit 30b52a4e829efe0ee6d7208e8500b99f664af5e9, documented in advisory https://github.com/strukturag/libheif/security/advisories/GHSA-x8xm-cm2c-cfc8; 1.23.2 introduces a shared decode budget (max_items * MAX_DERIVED_IMAGE_DECODE_FACTOR), a maximum overlay nesting level, and a memoized reference-cycle check, so make sure the number you ship is a tagged 1.23.2+ build and not just a cherry-picked object file. Where upgrading is not immediately possible, run all HEIF/AVIF decoding of untrusted input inside an isolated worker process with hard limits: a wall-clock decode timeout, an RLIMIT_CPU, and a cgroup memory cap - trade-off is that legitimately large or deeply tiled images may be killed, so set the ceiling above your real workload and return a clean error rather than crashing the service. Pre-screen uploads at the ingestion layer by rejecting or quarantining files that declare derived image items with many references to a single base (grid/iovl/iden chains) and by enforcing tight file-size and item-count limits, and avoid auto-generating thumbnails or previews from unauthenticated uploads. Note that the budgeted path only exists in 1.23.2 and later, so merely tuning heif_security_limits (for example lowering max_items) on an older build does not close the amplification route; and for desktop or client-side integrations, requiring an explicit user action to open untrusted HEIF/AVIF files removes the automated-decode precondition but does not fix the underlying defect.

Affected VersionsENISA

libheif < 1.23.2

Affected Packages

euvd libheif 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

HEIF/AVIF images can be built from derived image items - grid (a tiled montage), iovl (image overlay), and iden (identity) - that reference other items through the file's iref box rather than carrying pixels themselves. In libheif, ImageItem::decode_image() threaded its cycle-detection set (processed_ids, a std::set<heif_item_id>) by value, so every recursion branch received its own copy of the set; inserting an item into one branch's copy did not mark it seen elsewhere, and decode_image() had no shared operation budget. A file that shares one base image across many derived branches therefore passes the cycle check on each traversal and decodes the same base image an exponential number of times - an unbounded resource allocation, CWE-770 (Allocation of Resources Without Limits or Throttling). The same commit also addresses a related amplification in HeifFile::parse_heif_sequences(): the check_for_ref_cycle_recursion depth-first search only tracked items on the current path and never memoized fully-verified subtrees, so each distinct root-to-item path was re-walked, blowing up on nested 'iden' chains that share a common base. The 1.23.2 fix replaces the by-value set with a DecodeTraversalState struct that carries a shared std::atomic<uint32_t> decode_count plus a max_decodes ceiling computed as security_limits->max_items * MAX_DERIVED_IMAGE_DECODE_FACTOR (computed in 64-bit and clamped to UINT32_MAX) and a max_overlay_nesting bound; the cycle-check DFS gains a finished_items memo set. CPE cpe:2.3:a:strukturag:libheif:*:*:*:*:*:*:*:* identifies all builds up to and including 1.23.1 as affected.

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 (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Automated pipelines decode untrusted images with no auth or interaction (AV:N/PR:N/UI:N); amplification is reliable (AC:L); impact is availability-only CPU/memory exhaustion (A:H, C:N/I:N).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Sep 18, 2026 - 17:17 EUVD
CVE Published
Sep 18, 2026 - 16:00 cve.org
HIGH 7.5

DescriptionCVE.org

libheif is a HEIF and AVIF file format decoder and encoder. In 1.23.1 and earlier, crafted grid, iovl, and iden reference graphs can repeatedly decode the same base image because processed_ids is copied per branch and ImageItem::decode_image() has no shared operation budget. This vulnerability is fixed in 1.23.2.

Technical POC Analysis

CWE-770 (Allocation of Resources Without Limits or Throttling).

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

libheif 1.23.1 and earlier can be driven to exhaust CPU and memory by a small, purpose-built HEIF/AVIF image, letting an unauthenticated remote attacker degrade or knock offline any service that automatically decodes untrusted files - image upload pipelines, thumbnailers, and transcoders are the most exposed. Because the malicious input is trivially constructed and the decode path is fully automated, customer-facing image handling can be disrupted with minimal attacker effort and no credentials. The flaw is availability-only: there is no evidence of code execution, data disclosure, or data modification.

Business Impact: High
Compensating Controls

Apply vendor patch. Until the upgrade to libheif 1.23.2 (or later) is validated and deployed, mitigate by disabling automatic decoding of untrusted HEIF/AVIF input, isolating decoding in sandboxed workers with hard CPU-time and memory limits, enforcing per-request decode timeouts and upload rate limits, and monitoring decode worker timeouts for signs of attempted abuse.

Threat Intelligence Overview

EPSS Score
0.5%
Top 57% exploitable
Prevalence
High
libheif is the standard HEIF/AVIF decoder in GNOME, KDE, ImageMagick, libvips
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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 HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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-84383 CRITICAL
9.8 Sep 04

Heap-based buffer overflow in libheif before 1.23.2 allows remote attackers to corrupt memory and potentially achieve co

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

Vendor 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

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