CVE-2026-33636libpng是一个广泛使用的PNG图像处理库。在1.6.36至1.6.55版本中,其ARM/AArch64架构下的Neon优化调色板扩展路径存在严重的越界读写漏洞。攻击者可以通过构造特制的PNG图片,在解码过程中触发该漏洞,导致内存读取越界和写入越界。该漏洞无需认证,但需要用户交互,可能影响应用程序的机密性、完整性和可用性。
该漏洞源于libpng在ARM/AArch64平台上使用Neon指令集优化调色板扩展时的逻辑错误。受影响版本在将8位索引颜色转换为RGB或RGBA真彩色时,循环处理机制未对末尾数据块进行充分的边界检查。由于算法采用逆向遍历(从行尾向行首处理),当处理行末剩余的不足一个完整处理单元的像素块时,指针会回退到行缓冲区起始地址之前的内存区域。这导致程序读取非法内存地址(越界读)并将扩展后的像素数据写入该非法地址(越界写)。攻击者可通过精心构造PNG文件的宽度和数据布局,精确控制越界访问的偏移量,从而造成信息泄露或崩溃,甚至可能实现任意代码执行。由于该漏洞位于关键的图像解码路径,且Neon优化在移动和ARM服务器环境中非常常见,因此影响范围较广。