CVE-2026-32882libheif是一款HEIF和AVIF文件格式的编解码器。在1.21.2及之前的版本中,HeifPixelImage::overlay()函数存在堆缓冲区越界读取漏洞。当合成覆盖图像且子图像的Alpha通道与颜色通道的位深度不同时,函数错误地使用颜色通道步幅来索引Alpha平面,导致读取Alpha缓冲区末尾之后的数据。攻击者可利用此漏洞导致拒绝服务(崩溃)或泄露堆内存信息。该问题已在1.22.0版本中修复。
该漏洞位于libheif库的源文件libheif/pixelimage.cc中的HeifPixelImage::overlay()函数。其根本原因在于处理图像覆盖(iovl)时,对于Alpha通道和颜色通道位深度不一致的情况,代码逻辑存在错误。具体而言,函数在访问Alpha平面数据时,错误地使用了颜色通道的步幅(in_stride)作为索引增量,而非先前获取的Alpha通道专用步幅(alpha_stride)。这种步幅的不匹配导致指针偏移量计算错误,使得程序读取越界数据。攻击者可以通过构造特制的HEIF文件来触发此漏洞。当受害者使用受影响版本的libheif处理该文件时,会导致堆缓冲区越界读取,读取量可能达到数千字节。这不仅可能导致应用程序崩溃(拒绝服务),还可能通过解码输出像素中嵌入的泄露字节,间接泄露相邻堆内存中的敏感信息。