CVE-2026-84383: CVE-2026-84383: libheif is a HEIF and AVIF file format decoder and encoder. From 1.22.0 until 1.23.2, a cr…
Unknown · · NVD published 2026-09-18 · posted 2026-09-29 · last modified 2026-09-18
CVE-2026-84383 at a glance
CVE-2026-84383 is a critical-severity Out-of-Bounds Write vulnerability in the affected product, with a CVSS 3.1 base score of 9.8. NVD published it on 2026-09-18 and classifies the weakness as CWE-787. Public exploit code: 2 public GitHub proof-of-concept repositories from 2 accounts, with the earliest exploit evidence dated 2026-09-29. FIRST EPSS puts the probability of exploitation activity in the next 30 days at 0.72% (percentile 53.8, scored 2026-11-03). NVD does not list a fixed version, so the vendor advisory is the reference for the fix. CVERadar maps 2 MITRE ATT&CK techniques across Execution and Initial Access, inferred from the CWE and the description. Its CVERadar threat level is 53/100.
What it is
libheif is a HEIF and AVIF file format decoder and encoder. From 1.22.0 until 1.23.2, a crafted HEIF, HEIC, or AVIF item graph using nested iden and auxl references can make HeifPixelImage::transfer_channel_from_image_as() append duplicate Alpha planes with different bit depths to m_storage. HeifPixelImage::scale_nearest_neighbor() in libheif/image/pixelimage.cc allocates the destination Alpha plane using the first plane's 8-bit depth, then iterates a later 10-bit or 12-bit Alpha component and writes uint16_t samples into the same 8-bit allocation. The output geometry controls the overflow extent and the encoded sample values control the data written, allowing a remote file processed by heif_decode_image() to cause a heap out-of-bounds write. This issue is fixed in version 1.23.2.
| Weakness | CWE-787 definition |
|---|---|
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (source: GitHub) |
| ATT&CK tactics | Initial Access → Execution |
Exploitation evidence
First exploit evidence seen: 2026-09-29 (earliest date across the sources below).
Exploited in the wild
No source on this site lists in-the-wild exploitation yet (CISA KEV, VulnCheck KEV).
Public exploit code
GitHub proof-of-concept repositories
2 public repositories from 2 accounts, first seen 2026-09-29. Most starred: dinosn/libheif-cve-2026-84383-lab (10 stars), view the dinosn/libheif-cve-2026-84383-lab repository on GitHub.
Verify before running: public PoCs can be malicious. Read the code and only run it in an isolated lab. A PoC means exploit code is public, not that this CVE is exploited in the wild.
Sources: nomi-sec/PoC-in-GitHub.
Patches, mitigations and detection
Fixed versions
NVD does not list a fixed version for this CVE. Use the vendor advisory below.
Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.
Vendor advisories and patches
No vendor-tagged reference yet; see the full reference list.
MITRE ATT&CK mitigations for this chain
- M1048 Application Isolation and Sandboxing (for T1190, T1203) : Application isolation will limit what other processes and system features the exploited target can access.
- M1037 Filter Network Traffic (for T1190) : Restrict outbound network traffic from public-facing servers to prevent unauthorized connections from initiating communications with attacker-controlled infrastructure. While this may not prevent the initial exploitation, it limits the attacker's ability to verify and control the compromised server post-exploit, reduci
- M1030 Network Segmentation (for T1190) : Segment externally facing servers and services from the rest of the network with a DMZ or on separate hosting infrastructure.
- M1016 Vulnerability Scanning (for T1190) : Regularly scan externally facing systems for vulnerabilities and establish procedures to rapidly patch systems when critical vulnerabilities are discovered through scanning and through public disclosure.
- M1026 Privileged Account Management (for T1190) : Use least privilege for service accounts will limit what permissions the exploited process gets on the rest of the system.
- M1050 Exploit Protection (for T1190, T1203) : Web Application Firewalls may be used to limit exposure of applications to prevent exploit traffic from reaching the application.
- M1035 Limit Access to Resource Over Network (for T1190) : Ensure that all publicly exposed services are actually intended to be so, and restrict access to any that should only be available internally.
- M1051 Update Software (for T1190, T1203) : Update software regularly by employing patch management for externally exposed applications.
Detection Generic guidance
- Initial Access: Alert on unusual requests to the affected service (odd paths, oversized payloads, exploit strings) in WAF, reverse-proxy and application logs.
- Execution: Watch for the service process spawning shells or script interpreters (cmd.exe, powershell, sh, bash, python) via EDR process-tree rules.
Response checklist Generic guidance
- Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
- Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
- Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
- Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.
Sources
- NVD: CVE-2026-84383
- CVE.org record for CVE-2026-84383
- FIRST EPSS score for CVE-2026-84383 (2026-11-03)
- GitHub fix commit (github.com) github.com/strukturag/libheif/commit/f4fb8bde4704ebb46e46ff9fb94407c9774153b2
- GitHub reference (github.com) github.com/strukturag/libheif/releases/tag/v1.23.2
- GitHub security advisory (github.com) github.com/strukturag/libheif/security/advisories/GHSA-g89c-p67h-r497