Description
libheif is a HEIF and AVIF file format decoder and encoder. In 1.23.0 and earlier, a crafted image sequence with a 2x2 primary plane and a 256x256 auxiliary alpha plane can cause attacker-controlled heap corruption during a normal decode and re-encode workflow. Track_Visual::decode_next_image_sample() calls transfer_channel_from_image_as() without checking that the auxiliary alpha dimensions match the main frame. The resulting inconsistent image reaches heif_track_decode_next_image() and then heif_context_encode_image(). In unc_encoder::encode(), unc_encoder_component_interleave::encode_tile() sizes its buffer with compute_tile_data_size_bytes() using the primary dimensions but copies each component using its actual plane dimensions. The oversized alpha plane is therefore copied beyond the allocation, causing an out-of-bounds write; the inverse size mismatch can also produce an out-of-bounds read. This issue is fixed in version 1.23.1.
Published: 2026-08-18
Score: 5.3 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

libheif is a library for HEIF and AVIF image formats. In v1.23.0 and earlier, when a sequence containing a 2×2 primary image plane and a 256×256 auxiliary alpha plane is decoded and subsequently re‑encoded, the library performs a heap allocation based on the primary dimensions but copies the alpha data using its actual plane size. This mismatch causes an out‑of‑bounds write or read on the heap, leading to memory corruption. The corruption could enable an attacker to trigger a crash or, in the worst case, execute arbitrary code if the corruption is exploitable in the context of a privileged process.

Affected Systems

The affected product is Struktur AG’s libheif library. Versions up to and including 1.23.0 are vulnerable. The fix was released in libheif 1.23.1. Systems that compile or ship older releases of libheif, particularly those that process HEIF/AVIF images from untrusted input, are at risk.

Risk and Exploitability

The CVSS score of 5.3 indicates a moderate severity. EPSS data is unavailable and the vulnerability is not listed in CISA’s KEV catalog, suggesting limited public exploitation. Exploitation requires delivering or controlling the image data that triggers the encode path, so it primarily represents a local or application‑level risk. An attacker with the ability to supply malicious images to a program that uses libheif could cause a denial of service or, if memory corruption can be chained, remote code execution.

Generated by OpenCVE AI on August 19, 2026 at 00:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade libheif to version 1.23.1 or later on all systems that use the library.
  • Disable or sandbox processing of HEIF/AVIF files from untrusted or external sources until the upgrade is complete.
  • Validate image metadata before decoding to ensure auxiliary planes match the primary plane dimensions, or use a hardened image processing pipeline that checks for dimension consistency.

Generated by OpenCVE AI on August 19, 2026 at 00:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 18 Aug 2026 21:30:00 +0000

Type Values Removed Values Added
Description libheif is a HEIF and AVIF file format decoder and encoder. In 1.23.0 and earlier, a crafted image sequence with a 2x2 primary plane and a 256x256 auxiliary alpha plane can cause attacker-controlled heap corruption during a normal decode and re-encode workflow. Track_Visual::decode_next_image_sample() calls transfer_channel_from_image_as() without checking that the auxiliary alpha dimensions match the main frame. The resulting inconsistent image reaches heif_track_decode_next_image() and then heif_context_encode_image(). In unc_encoder::encode(), unc_encoder_component_interleave::encode_tile() sizes its buffer with compute_tile_data_size_bytes() using the primary dimensions but copies each component using its actual plane dimensions. The oversized alpha plane is therefore copied beyond the allocation, causing an out-of-bounds write; the inverse size mismatch can also produce an out-of-bounds read. This issue is fixed in version 1.23.1.
Title libheif: Heap out of bounds write in libheif uncompressed encoder when writing images with mismatched auxiliary alpha dimensions
Weaknesses CWE-125
CWE-787
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-18T21:21:32.182Z

Reserved: 2026-07-13T18:37:08.488Z

Link: CVE-2026-62291

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-18T22:17:02.877

Modified: 2026-08-18T22:17:02.877

Link: CVE-2026-62291

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-19T00:30:04Z

Weaknesses