文章总结: 安全研究人员披露libpng官方参考库中存在两个严重漏洞CVE-2026-33636和CVE-2026-33416,影响数十年版本。前者是ARMNeon优化中的越界读写漏洞,可导致崩溃或信息泄露;后者为释放后使用漏洞,可能实现远程代码执行。建议用户升级至libpngv1.6.56或更新版本,或通过编译选项禁用硬件优化缓解风险。 综合评分: 85 文章分类: 漏洞分析,应急响应,解决方案,漏洞预警,应用安全
libpng 官方参考库中的这两个严重漏洞已存在30年之久
Ddos Ddos
代码卫士
2026年4月2日 18:09 北京
聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
安全研究人员披露了位于 libpng 官方参考库中的两个严重漏洞。libpng 是便携式网络图形格式的官方参考库。这些漏洞影响了跨越数十年开发历程的多个版本,可能允许攻击者触发进程崩溃、泄露敏感信息,甚至实现任意代码执行。
作为一个与平台无关的 C 语言库,libpng 是无数应用程序中图像渲染的基石,涵盖从网页浏览器到嵌入式系统的广泛领域。这两个漏洞凸显了传统 C 语言代码库中内存管理长期存在的风险。
第一个漏洞CVE-2026-33636,针对的是使用 Neon SIMD 指令的 ARM/AArch64 架构中用于性能优化的代码。调色板扩展路径中存在一处越界读取和写入漏洞。当库将 8 位索引调色板行扩展为 RGB 或 RGBA 时,Neon 循环在处理最后一组像素时未验证是否有足够的剩余输入数据。由于该实现是从行尾反向处理的,最后一次迭代会解引用缓冲区起始位置之前的指针。攻击者可通过提供特制的 PNG 图片轻易导致进程崩溃。由于调色板内容由攻击者控制,堆内存内容可能通过解码后的像素输出被泄露。
此漏洞仅影响启用了硬件优化的系统(具体文件为 arm/palette_neon_intrinsics.c)。基于 Intel(SSE2)、PowerPC 的实现以及通用的 C 语言实现均不受影响。
第二个漏洞CVE-2026-33416,是一个涉及两个内部结构体 png_struct 和 png_info 之间指针别名(别名使用)的经典逻辑错误。此漏洞自 1.0 版本(针对透明数据)和 1.2.1 版本(针对调色板)以来就一直存在于代码库中。
像 png_set_tRNS 和 png_set_PLTE 这样的函数会在两个不同结构体之间共享同一个堆分配的缓冲区。如果应用程序调用 png_free_data,它会通过其中一个结构体释放缓冲区,而另一个结构体则仍持有一个悬空指针。随后的转换操作会读取——有时甚至写入——这块已被释放的内存。
研究人员已在一些环境中演示了远程代码执行。在像 glibc tcache 这样的现代内存分配器上,被释放的 256 字节缓冲区通常会立即被新对象重新使用。如果攻击者控制(通过 tRNS 数据块)重新写入该内存的值,他们就可以劫持应用程序的控制流。这些特殊构造的 PNG 文件 100% 符合标准规范,这意味着传统的验证工具或 Web 应用防火墙在不屏蔽所有 PNG 文件的情况下无法检测到此类攻击。
用户应升级到已修复这两个漏洞的 libpng v1.6.56 或 v1.8.0(主干分支)版本。如果无法立即更新,可以通过在编译时使用以下标志来禁用 ARM Neon 漏洞的硬件优化缓解措施:-DPNG_ARM_NEON_OPT=0。至于第二个释放后使用漏洞,建议开发者审查在 png_read_info() 和 png_read_update_info() 阶段之间调用 png_free_data() 的应用程序模式。
开源卫士试用地址:https://oss.qianxin.com/#/login
代码卫士试用地址:https://sast.qianxin.com/#/login
推荐阅读
Telegram 创始人 Pavel Durov 因缺乏内容审核被捕
Telegram 0day可导致攻击者将恶意安卓APK以视频形式发送
Telegram 修复Windows 版中的0day漏洞
原文链接
The 30-Year Glitch: RCE and ARM Exploits Uncovered in libpng Reference Library
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 “赞” 吧~
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:代码卫士 Ddos Ddos《libpng 官方参考库中的这两个严重漏洞已存在30年之久》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论