CVE-2026-84384
libheif: brotli/zlib decompression paths lack output-size limits, allowing decompression-bomb OOM/DoS
libheif is a HEIF and AVIF file format decoder and encoder. From 1.19.0 until 1.23.2, crafted HEIF or AVIF mime metadata and unci image data can cause decompress_brotli() and do_inflate() to grow accumulated output without an effective size limit or MemoryHandle accounting. The brotli path has no output bound, while the zlib path checks only a small temporary buffer in a branch that valid streams do not reach, and overlapping icef units can decompress the same payload repeatedly. HeifContext::interpret_heif_file_images() processes multiple compressed metadata items during file opening, allowing a small file to consume unbounded memory and terminate the process. This issue is fixed in version 1.23.2.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
libheif: brotli/zlib decompression paths lack output-size limits, allowing decompression-bomb OOM/DoS
libheif is a HEIF and AVIF file format decoder and encoder. From 1.19.0 until 1.23.2, crafted HEIF or AVIF mime metadata and unci image data can cause decompress_brotli() and do_inflate() to grow accumulated output without an effective size limit or MemoryHandle accounting. The brotli path has no output bound, while the zlib path checks only a small temporary buffer in a branch that valid streams do not reach, and overlapping icef units can decompress the same payload repeatedly. HeifContext::interpret_heif_file_images() processes multiple compressed metadata items during file opening, allowing a small file to consume unbounded memory and terminate the process. This issue is fixed in version 1.23.2.
- Record
CVE-2026-84384- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-409
- Updated
- 2026-11-02
EUVDEUVD-2026-83022
7.5
libheif is a HEIF and AVIF file format decoder and encoder. From 1.19.0 until 1.23.2, crafted HEIF or AVIF mime metadata and unci image data can cause decompress_brotli() and do_inflate() to grow accumulated output without an effective size limit or MemoryHandle accounting. The brotli path has no output bound, while the zlib path checks only a small temporary buffer in a branch that valid streams do not reach, and overlapping icef units can decompress the same payload repeatedly. HeifContext::interpret_heif_file_images() processes multiple compressed metadata items during file opening, allowing a small file to consume unbounded memory and terminate the process. This issue is fixed in version 1.23.2.
- Record
EUVD-2026-83022- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
NVD
7.5
libheif is a HEIF and AVIF file format decoder and encoder. From 1.19.0 until 1.23.2, crafted HEIF or AVIF mime metadata and unci image data can cause decompress_brotli() and do_inflate() to grow accumulated output without an effective size limit or MemoryHandle accounting. The brotli path has no output bound, while the zlib path checks only a small temporary buffer in a branch that valid streams do not reach, and overlapping icef units can decompress the same payload repeatedly. HeifContext::interpret_heif_file_images() processes multiple compressed metadata items during file opening, allowing a small file to consume unbounded memory and terminate the process. This issue is fixed in version 1.23.2.
- Record
CVE-2026-84384- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-409
- Updated
- 2026-11-02
OSVBELL-CVE-2026-84384
7.5
- Record
BELL-CVE-2026-84384- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSV
7.5
libheif: brotli/zlib decompression paths lack output-size limits, allowing decompression-bomb OOM/DoS
libheif is a HEIF and AVIF file format decoder and encoder. From 1.19.0 until 1.23.2, crafted HEIF or AVIF mime metadata and unci image data can cause decompress_brotli() and do_inflate() to grow accumulated output without an effective size limit or MemoryHandle accounting. The brotli path has no output bound, while the zlib path checks only a small temporary buffer in a branch that valid streams do not reach, and overlapping icef units can decompress the same payload repeatedly. HeifContext::interpret_heif_file_images() processes multiple compressed metadata items during file opening, allowing a small file to consume unbounded memory and terminate the process. This issue is fixed in version 1.23.2.
- Record
CVE-2026-84384- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-409
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-84384
7.5
libheif is a HEIF and AVIF file format decoder and encoder. From 1.19.0 until 1.23.2, crafted HEIF or AVIF mime metadata and unci image data can cause decompress_brotli() and do_inflate() to grow accumulated output without an effective size limit or MemoryHandle accounting. The brotli path has no output bound, while the zlib path checks only a small temporary buffer in a branch that valid streams do not reach, and overlapping icef units can decompress the same payload repeatedly. HeifContext::interpret_heif_file_images() processes multiple compressed metadata items during file opening, allowing a small file to consume unbounded memory and terminate the process. This issue is fixed in version 1.23.2.
- Record
DEBIAN-CVE-2026-84384- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 7 moreShow less
OSVUBUNTU-CVE-2026-84384
7.5
libheif is a HEIF and AVIF file format decoder and encoder. From 1.19.0 until 1.23.2, crafted HEIF or AVIF mime metadata and unci image data can cause decompress_brotli() and do_inflate() to grow accumulated output without an effective size limit or MemoryHandle accounting. The brotli path has no output bound, while the zlib path checks only a small temporary buffer in a branch that valid streams do not reach, and overlapping icef units can decompress the same payload repeatedly. HeifContext::interpret_heif_file_images() processes multiple compressed metadata items during file opening, allowing a small file to consume unbounded memory and terminate the process. This issue is fixed in version 1.23.2.
- Record
UBUNTU-CVE-2026-84384- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11719-1 No score
gdk-pixbuf-loader-libheif-1.23.4-1.1 on GA media
These are all security issues fixed in the gdk-pixbuf-loader-libheif-1.23.4-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11719-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21889-1 No score
Security update for libheif
This update for libheif fixes the following issues:
- CVE-2026-84383: Heap buffer overflow in scale_nearest_neighbor() via duplicate alpha planes from nested iden/auxl items (bsc#1279443).
- CVE-2026-84384: brotli/zlib decompression paths lack output-size limits, allowing decompression-bomb OOM/DoS (bsc#1279445).
- CVE-2026-84444: Out-of-bounds write in the unci encoder (bsc#1279448).
- CVE-2026-84446: Sequence decode timing-table initialization allows non-terminating loops and unbounded memory, bypassing max_sequence_frames (bsc#1279447).
- CVE-2026-84447: Derived-image indirect reference chains and tiled offsets bypass decode caching and MemoryHandle limits, causing CPU/memory amplification DoS (bsc#1279446).
- CVE-2026-84448: Heap out-of-bounds read in the inline-mask region API (bsc#1279449).
- CVE-2026-84450: image item with
clapproperty and an ispe declaring a dimension greater thanINT32_MAX + 1can lead to a crash via an abort (bsc#1280002). - CVE-2026-84451: crafted HEIF file advertising a 4096 � 4096 uncompressed tile grid can cause an out-of-bounds read due to an integer overflow (bsc#1280001).
- Heap out-of-bounds write in the uncompressed encoder for RRGGBB images with interleaved bit-depth <= 8 (bsc#1273083).
- Out-of-bounds read and write in derived-item and pixel-plane handling (bsc#1279444).
Changes for libheif:
- Update to version 1.23.4:
- CVE-2026-XXXXX: The max_items security limit was not enforced for the child boxes of iinf, so a file could declare an unbounded number of items.
- CVE-2026-XXXXX: Unbounded recursion in the reference-cycle check crashed the parser on a long chain of derived items, without bound when the item-count limit is disabled.
- CVE-2026-XXXXX: Permanent decoder deadlock through a lock-order inversion in parallel grid tile decoding (enabled by default).
- CVE-2026-XXXXX: Heap out-of-bounds read in the encoder pluginsi for images whose luma and chroma bit depths differ.
- CVE-2026-XXXXX: Unreclaimable memory leak in heif_track_get_next_raw_sequence_sample().
- CVE-2026-XXXXX: Heap out-of-bounds read in the WebCodecs decoder plugin
- includes fixes from 1.23.3:
- CVE-2026-XXXXX: Heap buffer overflow (write) in the uncompressed (unci) mixed-interleave decoder when the two chroma components declare different bit depths.
- CVE-2026-XXXXX: Permanent decoder deadlock through a reference cycle between an image and its alpha auxiliary image.
- CVE-2026-XXXXX: Heap out-of-bounds read in the YCbCr 4:2:0 to 16-bit interleaved RGB conversion when the chroma planes have a lower bit depth than luma
- CVE-2026-XXXXX: Heap buffer overflow in the SVT-AV1 encoder plugin when encoding a high-bit-depth alpha channel, and a double free on its send-picture error path.
- CVE-2026-84451: Incomplete fix: the tile range check of the unci decoder (without icef) could still overflow, allowing an out-of-bounds read
- CVE-2026-XXXXX: Heap out-of-bounds read when converting odd- height 4:2:0 frames of an uncompressed (uncv) image sequence to RGB.
- CVE-2026-XXXXX: Out-of-bounds read in the RGB to YCbCr identity- matrix color conversion when the R, G, and B planes have different bit depths
- CVE-2026-84450: A clap property combined with an oversized ispe reached an assert() in the Fraction arithmetic and aborted the process (incomplete fix). An error is returned instead.
- Fix Several smaller findings
- Fix Undefined behavior (negative shift) in the HDR bit-depth up-conversion for target bit depths above 16. Such conversions are now rejected.
- A number of bug fixes
- Update to version 1.23.2: [jsc#PED-16355]
- CVE-2026-84383: Heap buffer overflow in scale_nearest_neighbor() via duplicate alpha planes from nested iden/auxl items. (boo#CVE-2026-84383)
- Out-of-bounds read and write in derived-item and pixel-plane handling. Through iden and auxl item chains, a crafted file could attach pixel planes whose size differs from the image geometry; crop,…
- Record
openSUSE-SU-2026:21889-1- Updated
- 2026-11-02
OSVROOT-OS-DEBIAN-12-CVE-2026-84384 No score
CVE-2026-84384 in libheif - Patched by Root
Root has patched CVE-2026-84384 in the libheif package for Root:Debian:12. Multiple fixed versions available.
- Record
ROOT-OS-DEBIAN-12-CVE-2026-84384- Updated
- 2026-11-03
OSVROOT-OS-DEBIAN-13-CVE-2026-84384 No score
CVE-2026-84384 in libheif - Patched by Root
Root has patched CVE-2026-84384 in the libheif package for Root:Debian:13. Multiple fixed versions available.
- Record
ROOT-OS-DEBIAN-13-CVE-2026-84384- Updated
- 2026-11-02
OSVSUSE-SU-2026:4276-1 No score
Security update for libheif
This update for libheif fixes the following issues:
- CVE-2026-84383: Heap buffer overflow in scale_nearest_neighbor() via duplicate alpha planes from nested iden/auxl items (bsc#1279443).
- CVE-2026-84384: brotli/zlib decompression paths lack output-size limits, allowing decompression-bomb OOM/DoS (bsc#1279445).
- CVE-2026-84444: Out-of-bounds write in the unci encoder (bsc#1279448).
- CVE-2026-84446: Sequence decode timing-table initialization allows non-terminating loops and unbounded memory, bypassing max_sequence_frames (bsc#1279447).
- CVE-2026-84447: Derived-image indirect reference chains and tiled offsets bypass decode caching and MemoryHandle limits, causing CPU/memory amplification DoS (bsc#1279446).
- CVE-2026-84448: Heap out-of-bounds read in the inline-mask region API (bsc#1279449).
- CVE-2026-84450: image item with
clapproperty and an ispe declaring a dimension greater thanINT32_MAX + 1can lead to a crash via an abort (bsc#1280002). - CVE-2026-84451: crafted HEIF file advertising a 4096 x 4096 uncompressed tile grid can cause an out-of-bounds read due to an integer overflow (bsc#1280001).
- Out-of-bounds read and write in derived-item and pixel-plane handling (bsc#1279444).
Changes for libheif:
- Update to version 1.23.4 (jsc#PED-16355)
- Record
SUSE-SU-2026:4276-1- Updated
- 2026-11-02
OSVUSN-8846-1 No score
libheif vulnerabilities
Yuqi Qiu and Xiang Li discovered that libheif incorrectly handled certain compressed metadata. A remote attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-84384)
Yuqi Qiu and Xiang Li discovered that libheif incorrectly handled certain HEIF sequence data. A remote attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 26.04 LTS. (CVE-2026-84446)
Yuqi Qiu and Xiang Li discovered that libheif incorrectly handled certain image references. A remote attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 26.04 LTS. (CVE-2026-84447)
It was discovered that libheif incorrectly handled certain region masks. A local attacker could possibly use this issue to obtain sensitive information or cause a denial of service. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-84448)
It was discovered that libheif incorrectly handled certain images. A remote attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, and Ubuntu 24.04 LTS. (CVE-2026-84449)
- Record
USN-8846-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
libheifAlpaquita:stream |
1.20.2-r2 up to 1.23.4-r0 | 1.23.4-r0 |
libheifDebian:12 |
All versions, plus listed versions 1.15.1-11.15.1-1+deb12u11.16.2-11.16.2-21.16.2-3 Show 32 moreShow less1.17.0-11.17.1-11.17.4-11.17.6-11.17.6-21.17.6-31.17.6-41.18.1-11.18.1-21.18.2-11.18.2-21.19.1-11.19.1-1~bpo12+11.19.1-1~bpo12+21.19.3-11.19.3-1~bpo12+11.19.5-11.19.7-11.19.7-1~bpo12+11.19.8-11.20.1-11.20.2-11.20.2-21.21.2-11.21.2-21.21.2-31.21.2-41.23.1-11.23.2-11.23.3-11.23.4-11.23.4-1~deb13u1 |
None known |
libheifDebian:13 |
before 1.23.4-1~deb13u1, plus listed versions 1.19.8-11.19.8-1+deb13u11.20.1-11.20.2-11.20.2-2 Show 7 moreShow less1.21.2-11.21.2-21.21.2-31.21.2-41.23.1-11.23.2-11.23.3-1 |
1.23.4-1~deb13u1 |
libheifDebian:14 |
before 1.23.2-1, plus listed versions 1.19.8-11.20.1-11.20.2-11.20.2-21.21.2-1 Show 4 moreShow less1.21.2-21.21.2-31.21.2-41.23.1-1 |
1.23.2-1 |
libheifRoot:Debian:12 |
before 1.15.1-1+deb12u1.aikido.14 | 1.15.1-1+deb12u1.aikido.141.15.1-1+deb12u1.aikido.151.15.1-1+deb12u1.aikido.161.15.1-1+deb12u1.aikido.17 |
rootio-libheifRoot:Debian:12 |
before 1.15.1-1+deb12u1.aikido.14 | 1.15.1-1+deb12u1.aikido.141.15.1-1+deb12u1.aikido.151.15.1-1+deb12u1.aikido.161.15.1-1+deb12u1.aikido.17 |
libheifSUSE:Linux Enterprise Module for Desktop Applications 15 SP7 From an advisory covering 8 CVEs |
before 1.23.4-150700.3.21.1 | 1.23.4-150700.3.21.1 |
libheifSUSE:Linux Enterprise Module for Package Hub 15 SP7 From an advisory covering 8 CVEs |
before 1.23.4-150700.3.21.1 | 1.23.4-150700.3.21.1 |
libheifUbuntu:24.04:LTS |
before 1.17.6-1ubuntu4.9, plus listed versions 1.16.2-2ubuntu11.17.1-1ubuntu21.17.1-1ubuntu31.17.4-1ubuntu11.17.6-1ubuntu1 Show 11 moreShow less1.17.6-1ubuntu21.17.6-1ubuntu31.17.6-1ubuntu41.17.6-1ubuntu4.11.17.6-1ubuntu4.21.17.6-1ubuntu4.31.17.6-1ubuntu4.41.17.6-1ubuntu4.51.17.6-1ubuntu4.61.17.6-1ubuntu4.71.17.6-1ubuntu4.8 |
1.17.6-1ubuntu4.9 |
libheifUbuntu:26.04:LTS |
before 1.21.2-3ubuntu0.6, plus listed versions 1.20.2-11.20.2-21.20.2-2build11.20.2-2build21.20.2-2ubuntu1 Show 7 moreShow less1.21.2-11.21.2-31.21.2-3ubuntu0.11.21.2-3ubuntu0.21.21.2-3ubuntu0.31.21.2-3ubuntu0.41.21.2-3ubuntu0.5 |
1.21.2-3ubuntu0.6 |
Show 7 moreShow less
| Package | Affected | Fixed |
|---|---|---|
libheifUbuntu:Pro:18.04:LTS From an advisory covering 5 CVEs |
before 1.1.0-2ubuntu0.1~esm5, plus listed versions 1.1.0-21.1.0-2ubuntu0.1~esm11.1.0-2ubuntu0.1~esm21.1.0-2ubuntu0.1~esm31.1.0-2ubuntu0.1~esm4 |
1.1.0-2ubuntu0.1~esm5 |
libheifUbuntu:Pro:20.04:LTS From an advisory covering 5 CVEs |
before 1.6.1-1ubuntu0.1~esm5, plus listed versions 1.5.0-1build11.5.1-11.5.1-1build11.6.0-11.6.1-1 Show 5 moreShow less1.6.1-1build11.6.1-1ubuntu0.1~esm11.6.1-1ubuntu0.1~esm21.6.1-1ubuntu0.1~esm31.6.1-1ubuntu0.1~esm4 |
1.6.1-1ubuntu0.1~esm5 |
libheifUbuntu:Pro:22.04:LTS From an advisory covering 5 CVEs |
before 1.12.0-2ubuntu0.1~esm5, plus listed versions 1.11.0-11.12.0-2build11.12.0-2ubuntu0.1~esm11.12.0-2ubuntu0.1~esm21.12.0-2ubuntu0.1~esm31.12.0-2ubuntu0.1~esm4 |
1.12.0-2ubuntu0.1~esm5 |
libheifUbuntu:24.04:LTS From an advisory covering 5 CVEs |
before 1.17.6-1ubuntu4.9, plus listed versions 1.16.2-2ubuntu11.17.1-1ubuntu21.17.1-1ubuntu31.17.4-1ubuntu11.17.6-1ubuntu1 Show 11 moreShow less1.17.6-1ubuntu21.17.6-1ubuntu31.17.6-1ubuntu41.17.6-1ubuntu4.11.17.6-1ubuntu4.21.17.6-1ubuntu4.31.17.6-1ubuntu4.41.17.6-1ubuntu4.51.17.6-1ubuntu4.61.17.6-1ubuntu4.71.17.6-1ubuntu4.8 |
1.17.6-1ubuntu4.9 |
libheifUbuntu:26.04:LTS From an advisory covering 5 CVEs |
before 1.21.2-3ubuntu0.6, plus listed versions 1.20.2-11.20.2-21.20.2-2build11.20.2-2build21.20.2-2ubuntu1 Show 7 moreShow less1.21.2-11.21.2-31.21.2-3ubuntu0.11.21.2-3ubuntu0.21.21.2-3ubuntu0.31.21.2-3ubuntu0.41.21.2-3ubuntu0.5 |
1.21.2-3ubuntu0.6 |
libheifopenSUSE:Tumbleweed From an advisory covering 8 CVEs |
before 1.23.4-1.1 | 1.23.4-1.1 |
libheifopenSUSE:Leap 16.0 From an advisory covering 8 CVEs |
before 1.23.4-160000.1.1 | 1.23.4-160000.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | OSV | |
| affected | ||
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-84384 is a high vulnerability (CVSS 7.5) in Strukturag Libheif, published September 8, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.52%, the 44th percentile. Fixed in libheif 1.23.4-r0.
References
github.com/strukturag/libheif/security/advisories/GHSA-24wx-9w62-c96w
github.com/strukturag/libheif/commit/21893e8f66c8b79363ca2809391b07d35e1a95ec
github.com/strukturag/libheif/releases/tag/v1.23.2
docs.bell-sw.com/security/cves/CVE-2026-84384
github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84384.json
nvd.nist.gov/vuln/detail/CVE-2026-84384
Show 27 moreShow less
security-tracker.debian.org/tracker/CVE-2026-84384
suse.com/support/update/announcement/2026/suse-su-20264276-1
bugzilla.suse.com/1279443
bugzilla.suse.com/1279444
bugzilla.suse.com/1279445
bugzilla.suse.com/1279446
bugzilla.suse.com/1279447
bugzilla.suse.com/1279448
bugzilla.suse.com/1279449
bugzilla.suse.com/1280001
bugzilla.suse.com/1280002
suse.com/security/cve/CVE-2026-84383
suse.com/security/cve/CVE-2026-84384
suse.com/security/cve/CVE-2026-84444
suse.com/security/cve/CVE-2026-84446
suse.com/security/cve/CVE-2026-84447
suse.com/security/cve/CVE-2026-84448
suse.com/security/cve/CVE-2026-84450
suse.com/security/cve/CVE-2026-84451
ubuntu.com/security/CVE-2026-84384
cve.org/CVERecord?id=CVE-2026-84384
ubuntu.com/security/notices/USN-8846-1
ubuntu.com/security/CVE-2026-84446
ubuntu.com/security/CVE-2026-84447
ubuntu.com/security/CVE-2026-84448
ubuntu.com/security/CVE-2026-84449
bugzilla.suse.com/1273083
Left out here: the rest of 1 source description. The JSON record has them.