libpng官方参考库中的这两个严重漏洞已存在30年之久

admin 2026-04-04 05:41:59 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 安全研究人员披露libpng官方参考库中存在两个严重漏洞CVE-2026-33636和CVE-2026-33416,影响数十年版本。前者是ARMNeon优化中的越界读写漏洞,可导致崩溃或信息泄露;后者为释放后使用漏洞,可能实现远程代码执行。建议用户升级至libpngv1.6.56或更新版本,或通过编译选项禁用硬件优化缓解风险。 综合评分: 85 文章分类: 漏洞分析,应急响应,解决方案,漏洞预警,应用安全


cover_image

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年之久》

评论:0   参与:  0