REDHAT-BUG-2480002: Buffer Overflow
libheif is a HEIF and AVIF file format decoder and encoder. Versions 1.21.2 and below contain a heap buffer overflow in MaskImageCodec::decodemaskimage(). When decoding a HEIF file containing a mask image (mski), the function copies the full iloc extent data into a pixel buffer using memcpy(dst, data.data(), data.size()). The copy length data.size() is determined by the iloc extent in the file (attacker-controlled), while the destination buffer is sized based on the declared image dimensions. Because no upper-bound check exists on the data length, a crafted file whose iloc extent exceeds the pixel buffer allocation overflows the heap. The vulnerable single-memcpy branch is reached when the mskC property specifies bitsperpixel = 8 and the ispe property declares an even width ≥ 64 (so that stride == width), with no changes to default security limits or external codec plugins required. This issue has been fixed in version 1.22.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
libheifto a version that resolves this vulnerability.Fixed in 1.22.0
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-2480002?
The severity of REDHAT-BUG-2480002 is classified as high, with a severity score of 7.
How do I fix REDHAT-BUG-2480002?
To fix REDHAT-BUG-2480002, update the libheif package to version 1.21.3 or later.
What type of vulnerability is identified in REDHAT-BUG-2480002?
REDHAT-BUG-2480002 is classified as a buffer overflow vulnerability.
What software is affected by REDHAT-BUG-2480002?
The software affected by REDHAT-BUG-2480002 is libheif.
What causes the vulnerability in REDHAT-BUG-2480002?
The vulnerability in REDHAT-BUG-2480002 is caused by a heap buffer overflow when decoding a HEIF file containing a mask image.