Skip to main content

libheif EUVDEUVD-2026-83025

| CVE-2026-84449 LOW
Integer Overflow or Wraparound (CWE-190)
2026-09-18 GitHub_M
3.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Supply oversized RGB image dimensions to encoder API
  2. Delivery
    Allocate huge interleaved plane, overflow uint32_t stride
  3. Exploit
    Conversion loop computes invalid input pointer
  4. Execution
    Out-of-bounds read beyond plane during RGB-to-YCbCr
  5. Impact
    Encoding process crashes (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

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

Exploitation Conditions

Requires the application to use libheif's ENCODE path - specifically constructing an image via heif_image_create() and heif_image_add_plane() with extremely large RGB dimensions, then invoking heif_context_encode_image() to perform RGB-to-YCbCr conversion in libheif/color-conversion/rgb2yuv.cc. The stride must be large enough to overflow a 32-bit integer, meaning a genuinely huge image plane must be allocated first. Exploitation is LIMITED to versions prior to 1.19.6, to deployments that expose encoding of caller/attacker-influenced image dimensions, and by the impact being a process crash only (no code execution or data disclosure). Pure decode/file-parsing workflows are not affected.

Impact

This is a genuinely low-priority issue, and the signals are consistent rather than conflicting. The vendor CVSS of 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) reflects a pure availability impact (a crash of the encoding process) with high attack complexity. There is no EPSS score, no CISA KEV listing, and no public exploit code - exploitation status is 'no public exploit identified at time of analysis.' The most important nuance is that AV:N overstates real-world exposure: the overflow is triggered on the ENCODE path via image dimensions supplied programmatically through heif_image_create()/heif_image_add_plane(), not by parsing an attacker-supplied HEIF/AVIF file. The wrapped uint32_t stride only occurs for 'extremely large RGB images,' which additionally requires allocating an enormous interleaved plane - a self-inflicted or degenerate-input condition more than a remote weaponizable bug. In short: a real but marginal robustness defect, not a security priority. No key data is missing; the source-code diff (uint32_t→size_t stride widening) directly corroborates the CWE-190 integer-overflow root cause.

Exploit ScenarioDerived

An application using libheif's encoder accepts caller-controlled image dimensions and constructs a very large RGB image via heif_image_create()/heif_image_add_plane(), then calls heif_context_encode_image(). During RGB-to-YCbCr conversion the uint32_t stride overflows, producing an invalid input pointer that reads beyond the allocated plane and crashes the process. No public PoC exists, and the extreme image-size requirement plus high complexity make practical exploitation unlikely beyond a targeted denial-of-service against a service that lets untrusted users dictate encode dimensions.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 18, 2026

An integer-overflow flaw in libheif's RGB-to-YCbCr conversion path (libheif/color-conversion/rgb2yuv.cc) can crash an application that encodes extremely large RGB images constructed via heif_image_create() and heif_image_add_plane() before calling heif_context_encode_image(); a 32-bit stride field wraps, so the conversion loop computes an invalid input pointer and reads past the end of the allocated interleaved plane. Affected deployments are those running libheif versions prior to 1.19.6 that expose the ENCODE path to caller- or attacker-influenced image dimensions - pure decode/parsing workflows are not affected. Impact is limited to process termination (no code execution, no data disclosure), and no public exploit code was identified at time of analysis.

RemediationAI

Vendor-released patch: 1.19.6 - upgrade to libheif 1.19.6 (https://github.com/strukturag/libheif/releases/tag/v1.19.6) using the guidance in advisory GHSA-2c3g-p585-8rpq; note that commit e29953da30eb11aa1762df0bff3b36be4b22fbe3 changes public API signatures from uint32_t* to size_t* for the plane and channel stride out-parameters, so dependent applications must be recompiled against the new headers rather than simply relinked with the updated shared library, or they may silently misread stride values and corrupt memory. Where immediate upgrading is not possible, the practical compensating control is to bound the problem at the application layer: clamp or reject RGB image dimensions, widths, and computed strides before calling heif_image_add_plane()/heif_context_encode_image(), capping total plane size well below the 4 GiB region where a 32-bit stride can wrap - the trade-off is that legitimate very-large-image encoding is refused or downscaled. Additionally, restrict the encode entry point to trusted callers (do not let low-privileged tenants or remote users control image dimensions in services that wrap libheif), and consider running encode jobs with per-process memory limits and a supervision model that tolerates an aborted worker, since the residual worst case is a crash of the encoding process rather than code execution or data leakage. No public exploit code was identified at time of analysis, and there is no CISA KEV listing for this CVE.

Affected VersionsENISA

libheif < 1.19.6

Affected Packages

euvd libheif fix: 1.19.6

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 and AVIF image decoder/encoder library used by a wide range of applications and language bindings. The flaw is CWE-190 (Integer Overflow or Wraparound) rooted in the public API contract: the plane-accessor functions exposed through heif.h and heif_experimental.h (heif_image_get_plane, heif_image_get_plane_readonly, and the heif_image_get_channel_* variants) reported the image stride through a uint32_t* out_stride parameter. Inside Op_RGB24_32_to_YCbCr::convert_colorspace(), that narrow stride is multiplied by large y coordinates during RGB24/32-to-YCbCr conversion, so an extremely large plane created with heif_image_add_plane() produces a stride value that wraps, and the conversion loop then indexes beyond the allocated interleaved plane. The upstream fix (commit e29953da30eb11aa1762df0bff3b36be4b22fbe3, released as v1.19.6) widens the stride type from uint32_t to size_t throughout the API and adds an in-header TODO acknowledging that the stride parameter should be size_t to avoid this class of multiplication overflow. Note the patch changes public API signatures, so downstream consumers must be recompiled rather than only relinked. The corresponding CPE is cpe:2.3:a:strukturag:libheif:*:*:*:*:*:*:*:*, and the vendor's own GHSA-2c3g-p585-8rpq advisory classifies the issue as a denial-of-service in the encoder. The authoritative independent assessment rates this CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L - a local, low-privilege, high-complexity, availability-only issue - rather than the AV:N/PR:N framing in the mechanical description scoring, because exploitation requires the host application to already be driving the encode API with attacker- or caller-influenced huge RGB dimensions.

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 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 2.5 LOW

Dimensions are supplied through the local encoder API rather than a parsed file, so AV:L/PR:L; the huge-image precondition keeps AC:H, and impact is a crash only (A:L).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Sep 18, 2026 - 17:17 EUVD
CVE Published
Sep 18, 2026 - 16:03 cve.org
LOW 3.7

DescriptionCVE.org

libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.19.6, Op_RGB24_32_to_YCbCr::convert_colorspace() stores image-plane strides in an integer width that can overflow for extremely large RGB images created through heif_image_create() and heif_image_add_plane(). The resulting wrapped stride causes the conversion loop in libheif/color-conversion/rgb2yuv.cc to compute an invalid input pointer and read beyond the allocated interleaved plane while heif_context_encode_image() performs RGB-to-YCbCr conversion. This can crash the encoding process. This issue is fixed in version 1.19.6.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
High
libheif is a widely deployed HEIF/AVIF codec, but this is the narrower encoder path
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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 LOW
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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· derived
Defer
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

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

Attack Technique

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

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

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