# CVE-2026-49271: libheif: Wrapped icef compressed-unit range check causes out-of-bounds read in uncompressed HEIF decoder

> A crafted HEIF file triggers an integer overflow in libheif, causing an out-of-bounds read and application crash.

- **Severity:** Medium 6.5 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 19 Jun 2026
- **Updated:** 22 Jun 2026
- **Also known as:** BELL-CVE-2026-49271, DEBIAN-CVE-2026-49271, ECHO-77c2-91a0-4936, GHSA-r7qj-cg5r-r6vf, JLSEC-2026-1101, MINI-fvjp-p586-mvf2, ROOT-OS-DEBIAN-11-CVE-2026-49271

## What is CVE-2026-49271?

CVE-2026-49271 is a medium-severity vulnerability in strukturag libheif, published on 19 Jun 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

### Official description

libheif is a HEIF and AVIF file format decoder and encoder. Prior to version 1.22.1, the uncompressed HEIF decoder validates explicit icef compressed-unit offsets using unit_offset + unit_size. Because the addition can wrap, a crafted HEIF file can pass the range check and then construct a vector from iterators outside the compressed item buffer, producing an out-of-bounds heap read and crash. Version 1.22.1 patches the issue.

Weakness: CWE-125 (Out-of-bounds Read)

## Which versions are affected by CVE-2026-49271?

It affects 1 product.


Products: Struktur Libheif.

## How do I fix CVE-2026-49271?

Upgrade to a fixed version.

## Is CVE-2026-49271 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-49271 exists.

## Other vulnerabilities in strukturag libheif

- [CVE-2026-32740](https://insights.sbomify.com/CVE-2026-32740/): libheif: Heap-Buffer-Overflow Write in Grid Tile Chroma Compositing (high 8.8)
- [CVE-2023-49460](https://insights.sbomify.com/CVE-2023-49460/): Null dereference in n/a (high 8.8)
- [CVE-2023-49462](https://insights.sbomify.com/CVE-2023-49462/): Null dereference in n/a (high 8.8)
- [CVE-2023-49463](https://insights.sbomify.com/CVE-2023-49463/): Null dereference in n/a (high 8.8)
- [CVE-2023-49464](https://insights.sbomify.com/CVE-2023-49464/): Null dereference in n/a (high 8.8)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-49271 and fix it if it is affected.

What it is: CVE-2026-49271 is a medium-severity vulnerability in strukturag libheif, published on 19 Jun 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-49271 exists.

Affected product: strukturag libheif. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-49271/ (Markdown: https://insights.sbomify.com/CVE-2026-49271/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-49271
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-49271
- OSV: https://osv.dev/vulnerability/CVE-2026-49271

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-49271/
Summaries are generated and may contain mistakes; the official description above is the record.
