Every CVE Search/ Get API key

CVE-2026-62291

libheif: Heap out of bounds write in libheif uncompressed encoder when writing images with mismatched auxiliary alpha dimensions

5.3 MediumFix available

CVE-2026-62291 is a medium vulnerability (CVSS 5.3) in Strukturag Libheif, published August 1, 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.

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.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
Low
Integrity
Low
Availability
Low

Exploit likelihood

0.19%Unchanged since Aug 19, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.3

libheif: Heap out of bounds write in libheif uncompressed encoder when writing images with mismatched auxiliary alpha dimensions

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.

Record
CVE-2026-62291
CVSS 3.1
5.3 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Weakness
CWE-125, CWE-787
Updated
2026-11-02
EUVDEUVD-2026-62190 5.3

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.

Record
EUVD-2026-62190
CVSS 3.1
5.3 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Updated
2026-11-02
NVD 5.3

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.

Record
CVE-2026-62291
CVSS 3.1
5.3 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Weakness
CWE-125, CWE-787
Updated
2026-11-02
OSVBELL-CVE-2026-62291 5.3
Record
BELL-CVE-2026-62291
CVSS 3.1
5.3 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Updated
2026-11-02
OSV 5.3

libheif: Heap out of bounds write in libheif uncompressed encoder when writing images with mismatched auxiliary alpha dimensions

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.

Record
CVE-2026-62291
CVSS 3.1
5.3 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Weakness
CWE-125, CWE-787
Updated
2026-11-02
OSVDEBIAN-CVE-2026-62291 5.3

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.

Record
DEBIAN-CVE-2026-62291
CVSS 3.1
5.3 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Updated
2026-11-02
Show 7 moreShow less
OSVUBUNTU-CVE-2026-62291 5.3

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.

Record
UBUNTU-CVE-2026-62291
CVSS 3.1
5.3 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Updated
2026-11-02
OSVopenSUSE-SU-2026:11416-1 No score

gdk-pixbuf-loader-libheif-1.23.1-1.1 on GA media

These are all security issues fixed in the gdk-pixbuf-loader-libheif-1.23.1-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11416-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:21644-1 No score

Security update for libheif

This update for libheif fixes the following issues:

Update to version 1.23.1 (jsc#PED-16355).

Security issues fixed:

  • CVE-2026-62289: integer underflow in Fraction constructor via double clap transform application (bsc#1273079).
  • CVE-2026-62291: heap out-of-bounds write in the uncompressed encoder when writing images with mismatched auxiliary alpha dimensions (bsc#1273080).
  • CVE-2026-62292: out-of-bounds read in uncompressed unci tile range slicing (bsc#1273081).
  • CVE-2026-62377: reachable assertion in HeifContext::get_track() aborts on a valid-but-empty HEIF sequence file (bsc#1273082).
  • Heap out-of-bounds write in the uncompressed encoder for RRGGBB images with interleaved bit-depth <= 8 (bsc#1273083).

Changes for libheif:

  • Version 1.23.1
    • FFmpeg decoder plugin gains AV1, VVC, JPEG, and JPEG 2000/HTJ2K decoding.
    • SVT-AV1 encoder: new tune=iq and ms-ssim tune parameters.
    • C++ API: added getters/setters for the CLLI and MDCV HDR metadata boxes.
    • Sequence decoder now scales the alpha auxiliary track to the main image size.
    • Fixed pixi box writing for multi-channel images.
    • Corrected the placement of the TAI clock_type field into the top 2 bits.
    • Empty/unset plugin directory is no longer scanned.
Record
openSUSE-SU-2026:21644-1
Updated
2026-11-02
OSVSUSE-SU-2026:23320-1 No score

Security update for libheif

This update for libheif fixes the following issues:

Update to version 1.23.1 (jsc#PED-16355).

Security issues fixed:

  • CVE-2026-62289: integer underflow in Fraction constructor via double clap transform application (bsc#1273079).
  • CVE-2026-62291: heap out-of-bounds write in the uncompressed encoder when writing images with mismatched auxiliary alpha dimensions (bsc#1273080).
  • CVE-2026-62292: out-of-bounds read in uncompressed unci tile range slicing (bsc#1273081).
  • CVE-2026-62377: reachable assertion in HeifContext::get_track() aborts on a valid-but-empty HEIF sequence file (bsc#1273082).
  • Heap out-of-bounds write in the uncompressed encoder for RRGGBB images with interleaved bit-depth <= 8 (bsc#1273083).

Changes for libheif:

  • Version 1.23.1
    • FFmpeg decoder plugin gains AV1, VVC, JPEG, and JPEG 2000/HTJ2K decoding.
    • SVT-AV1 encoder: new tune=iq and ms-ssim tune parameters.
    • C++ API: added getters/setters for the CLLI and MDCV HDR metadata boxes.
    • Sequence decoder now scales the alpha auxiliary track to the main image size.
    • Fixed pixi box writing for multi-channel images.
    • Corrected the placement of the TAI clock_type field into the top 2 bits.
    • Empty/unset plugin directory is no longer scanned.
Record
SUSE-SU-2026:23320-1
Updated
2026-11-02
OSVSUSE-SU-2026:3597-1 No score

Security update for libheif

This update for libheif fixes the following issues:

Update to version 1.23.1 (jsc#PED-16355).

Security issues fixed:

  • CVE-2026-62289: integer underflow in Fraction constructor via double clap transform application (bsc#1273079).
  • CVE-2026-62291: heap out-of-bounds write in the uncompressed encoder when writing images with mismatched auxiliary alpha dimensions (bsc#1273080).
  • CVE-2026-62292: out-of-bounds read in uncompressed unci tile range slicing (bsc#1273081).
  • CVE-2026-62377: reachable assertion in HeifContext::get_track() aborts on a valid-but-empty HEIF sequence file (bsc#1273082).
  • Heap out-of-bounds write in the uncompressed encoder for RRGGBB images with interleaved bit-depth <= 8 (bsc#1273083).

Changes for libheif:

  • Version 1.23.1
    • FFmpeg decoder plugin gains AV1, VVC, JPEG, and JPEG 2000/HTJ2K decoding.
    • SVT-AV1 encoder: new tune=iq and ms-ssim tune parameters.
    • C++ API: added getters/setters for the CLLI and MDCV HDR metadata boxes.
    • Sequence decoder now scales the alpha auxiliary track to the main image size.
    • Fixed pixi box writing for multi-channel images.
    • Corrected the placement of the TAI clock_type field into the top 2 bits.
    • Empty/unset plugin directory is no longer scanned.
Record
SUSE-SU-2026:3597-1
Updated
2026-11-02
OSVUSN-8683-1 No score

libheif vulnerabilities

Feng Ning discovered that libheif incorrectly handled certain image transforms. 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, and Ubuntu 22.04 LTS. (CVE-2026-62289)

Ali Firas discovered that libheif incorrectly handled certain images. An attacker could possibly use this issue to cause a denial of service or execute arbitrary code. This issue only affected Ubuntu 24.04 LTS. (CVE-2026-62291)

Record
USN-8683-1
Updated
2026-11-02
OSVUSN-8774-1 No score

libheif vulnerabilities

Ali Firas discovered that libheif incorrectly handled certain images. An attacker could possibly use this issue to cause a denial of service or execute arbitrary code. (CVE-2026-62291)

Dmitrijs Trizna discovered that libheif incorrectly handled certain image sequences. An attacker could possibly use this issue to cause a denial of service. (CVE-2026-62377)

Record
USN-8774-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
libheif
Alpaquita:stream
1.20.2-r2 up to 1.23.4-r0
1.23.4-r0
libheif
Debian:14
before 1.23.1-1, plus listed versions
1.19.8-11.20.1-11.20.2-11.20.2-21.21.2-11.21.2-21.21.2-31.21.2-4
1.23.1-1
libheif
SUSE:Linux Enterprise Server 16.0
before 1.23.1-160000.1.1
1.23.1-160000.1.1
libheif
SUSE:Linux Enterprise Server for SAP applications 16.0
before 1.23.1-160000.1.1
1.23.1-160000.1.1
libheif
SUSE:Linux Enterprise Module for Desktop Applications 15 SP7
before 1.23.1-150700.3.18.1
1.23.1-150700.3.18.1
libheif
SUSE:Linux Enterprise Module for Package Hub 15 SP7
before 1.23.1-150700.3.18.1
1.23.1-150700.3.18.1
libheif
Ubuntu:24.04:LTS
before 1.17.6-1ubuntu4.8, plus listed versions
1.16.2-2ubuntu11.17.1-1ubuntu21.17.1-1ubuntu31.17.4-1ubuntu11.17.6-1ubuntu1
Show 10 moreShow less
1.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.7
1.17.6-1ubuntu4.8
libheif
Ubuntu:26.04:LTS
before 1.21.2-3ubuntu0.5, plus listed versions
1.20.2-11.20.2-21.20.2-2build11.20.2-2build21.20.2-2ubuntu1
Show 6 moreShow less
1.21.2-11.21.2-31.21.2-3ubuntu0.11.21.2-3ubuntu0.21.21.2-3ubuntu0.31.21.2-3ubuntu0.4
1.21.2-3ubuntu0.5
libheif
Ubuntu:Pro:18.04:LTS
before 1.1.0-2ubuntu0.1~esm4, plus listed versions
1.1.0-21.1.0-2ubuntu0.1~esm11.1.0-2ubuntu0.1~esm21.1.0-2ubuntu0.1~esm3
1.1.0-2ubuntu0.1~esm4
libheif
Ubuntu:Pro:20.04:LTS
before 1.6.1-1ubuntu0.1~esm4, plus listed versions
1.5.0-1build11.5.1-11.5.1-1build11.6.0-11.6.1-1
Show 4 moreShow less
1.6.1-1build11.6.1-1ubuntu0.1~esm11.6.1-1ubuntu0.1~esm21.6.1-1ubuntu0.1~esm3
1.6.1-1ubuntu0.1~esm4
libheif
Ubuntu:Pro:22.04:LTS
before 1.12.0-2ubuntu0.1~esm4, plus listed versions
1.11.0-11.12.0-2build11.12.0-2ubuntu0.1~esm11.12.0-2ubuntu0.1~esm21.12.0-2ubuntu0.1~esm3
1.12.0-2ubuntu0.1~esm4
libheif
openSUSE:Tumbleweed
before 1.23.1-1.1
1.23.1-1.1
libheif
openSUSE:Leap 16.0
before 1.23.1-160000.1.1
1.23.1-160000.1.1

History

History
WhenChangedSources
2026-11-02createdCVE List, EUVD, NVD, OSV

References

Show 18 moreShow less
MoveEnter Open