CVE-2026-84448
libheif: Heap out-of-bounds read in libheif inline-mask region API (heif_region_item_add_region_inline_mask_data / heif_region_get_mask_image)
libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.23.2, the public heif_region_item_add_region_inline_mask_data() function in libheif/api/libheif/heif_regions.cc accepts mask_data_len without verifying that it equals the byte count required by width and height. A later heif_region_get_mask_image() call derives the read length from the region geometry, so an undersized stored buffer causes heif_region_get_inline_mask_image() to read beyond the heap allocation and copy adjacent bytes into the returned monochrome mask image. This can disclose heap data or crash an application that constructs region metadata through the writer API, while the file-parsing path is not affected because it validates the canonical mask size. This issue is fixed in version 1.23.2.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
4.0
libheif: Heap out-of-bounds read in libheif inline-mask region API (heif_region_item_add_region_inline_mask_data / heif_region_get_mask_image)
libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.23.2, the public heif_region_item_add_region_inline_mask_data() function in libheif/api/libheif/heif_regions.cc accepts mask_data_len without verifying that it equals the byte count required by width and height. A later heif_region_get_mask_image() call derives the read length from the region geometry, so an undersized stored buffer causes heif_region_get_inline_mask_image() to read beyond the heap allocation and copy adjacent bytes into the returned monochrome mask image. This can disclose heap data or crash an application that constructs region metadata through the writer API, while the file-parsing path is not affected because it validates the canonical mask size. This issue is fixed in version 1.23.2.
- Record
CVE-2026-84448- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L - Weakness
- CWE-125, CWE-131
- Updated
- 2026-11-02
EUVDEUVD-2026-83015
4.0
libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.23.2, the public heif_region_item_add_region_inline_mask_data() function in libheif/api/libheif/heif_regions.cc accepts mask_data_len without verifying that it equals the byte count required by width and height. A later heif_region_get_mask_image() call derives the read length from the region geometry, so an undersized stored buffer causes heif_region_get_inline_mask_image() to read beyond the heap allocation and copy adjacent bytes into the returned monochrome mask image. This can disclose heap data or crash an application that constructs region metadata through the writer API, while the file-parsing path is not affected because it validates the canonical mask size. This issue is fixed in version 1.23.2.
- Record
EUVD-2026-83015- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L - Updated
- 2026-11-02
NVD
4.0
libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.23.2, the public heif_region_item_add_region_inline_mask_data() function in libheif/api/libheif/heif_regions.cc accepts mask_data_len without verifying that it equals the byte count required by width and height. A later heif_region_get_mask_image() call derives the read length from the region geometry, so an undersized stored buffer causes heif_region_get_inline_mask_image() to read beyond the heap allocation and copy adjacent bytes into the returned monochrome mask image. This can disclose heap data or crash an application that constructs region metadata through the writer API, while the file-parsing path is not affected because it validates the canonical mask size. This issue is fixed in version 1.23.2.
- Record
CVE-2026-84448- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L - Weakness
- CWE-125, CWE-131
- Updated
- 2026-11-02
OSVBELL-CVE-2026-84448
4.0
- Record
BELL-CVE-2026-84448- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L - Updated
- 2026-11-02
OSV
4.0
libheif: Heap out-of-bounds read in libheif inline-mask region API (heif_region_item_add_region_inline_mask_data / heif_region_get_mask_image)
libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.23.2, the public heif_region_item_add_region_inline_mask_data() function in libheif/api/libheif/heif_regions.cc accepts mask_data_len without verifying that it equals the byte count required by width and height. A later heif_region_get_mask_image() call derives the read length from the region geometry, so an undersized stored buffer causes heif_region_get_inline_mask_image() to read beyond the heap allocation and copy adjacent bytes into the returned monochrome mask image. This can disclose heap data or crash an application that constructs region metadata through the writer API, while the file-parsing path is not affected because it validates the canonical mask size. This issue is fixed in version 1.23.2.
- Record
CVE-2026-84448- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L - Weakness
- CWE-125, CWE-131
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-84448
4.0
libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.23.2, the public heif_region_item_add_region_inline_mask_data() function in libheif/api/libheif/heif_regions.cc accepts mask_data_len without verifying that it equals the byte count required by width and height. A later heif_region_get_mask_image() call derives the read length from the region geometry, so an undersized stored buffer causes heif_region_get_inline_mask_image() to read beyond the heap allocation and copy adjacent bytes into the returned monochrome mask image. This can disclose heap data or crash an application that constructs region metadata through the writer API, while the file-parsing path is not affected because it validates the canonical mask size. This issue is fixed in version 1.23.2.
- Record
DEBIAN-CVE-2026-84448- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L - Updated
- 2026-11-02
Show 5 moreShow less
OSVUBUNTU-CVE-2026-84448
4.0
libheif is a HEIF and AVIF file format decoder and encoder. Prior to 1.23.2, the public heif_region_item_add_region_inline_mask_data() function in libheif/api/libheif/heif_regions.cc accepts mask_data_len without verifying that it equals the byte count required by width and height. A later heif_region_get_mask_image() call derives the read length from the region geometry, so an undersized stored buffer causes heif_region_get_inline_mask_image() to read beyond the heap allocation and copy adjacent bytes into the returned monochrome mask image. This can disclose heap data or crash an application that constructs region metadata through the writer API, while the file-parsing path is not affected because it validates the canonical mask size. This issue is fixed in version 1.23.2.
- Record
UBUNTU-CVE-2026-84448- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L - 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
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 |
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 |
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 |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
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 | ||
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-84448 is a medium vulnerability (CVSS 4.0) 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.19%, the 8th percentile. Fixed in libheif 1.23.4-r0.
References
github.com/strukturag/libheif/security/advisories/GHSA-p58j-h3vm-3fp5
github.com/strukturag/libheif/commit/646d85fbf5bd18fc3cdc516e915e59072de2d510
github.com/strukturag/libheif/releases/tag/v1.23.2
docs.bell-sw.com/security/cves/CVE-2026-84448
github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84448.json
nvd.nist.gov/vuln/detail/CVE-2026-84448
Show 27 moreShow less
security-tracker.debian.org/tracker/CVE-2026-84448
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-84448
cve.org/CVERecord?id=CVE-2026-84448
ubuntu.com/security/notices/USN-8846-1
ubuntu.com/security/CVE-2026-84384
ubuntu.com/security/CVE-2026-84446
ubuntu.com/security/CVE-2026-84447
ubuntu.com/security/CVE-2026-84449
bugzilla.suse.com/1273083
Left out here: the rest of 1 source description. The JSON record has them.