导语:开源图像元数据处理库Exiv2被曝出存在内存分配漏洞,攻击者可通过特制的PNG图像文件触发std::bad_alloc异常,导致应用崩溃。
正文
Exiv2项目维护者确认,该库0.27.1及更早版本存在一个严重的拒绝服务漏洞。漏洞位于PngChunk::parseChunkContent函数中,该函数负责解析PNG图像文件的块(chunk)内容。
安全研究人员发现,当Exiv2处理经过恶意构造的PNG文件时,会尝试分配一个由文件元数据指定大小的内存缓冲区。如果PNG文件中的大小字段被篡改为极大值,将导致程序尝试分配超出系统可用内存的缓冲区,触发std::bad_alloc标准异常。
这种未受控的内存分配(uncontrolled memory allocation)漏洞属于典型的资源耗尽攻击。不同于缓冲区溢出,此类漏洞利用合法API试图分配巨大内存,导致程序异常终止。
Exiv2是开源社区标准的图像元数据读写库,支持Exif、IPTC、XMP等标准,被集成到GIMP、digikam、darktable等多个图像处理工具中。该漏洞的发现意味着这些应用在处理不受信任图像文件时都可能受到影响。
影响分析
该漏洞影响Exiv2 0.27.1及所有更早版本,这些版本被大量图像处理软件和照片管理工具所依赖。攻击者可通过社交媒体、邮件附件或图床上传恶意PNG文件,诱导用户下载并打开,导致应用崩溃。虽然不会被直接利用执行代码,但在某些场景下可作为更大攻击链的一部分。
防护建议
- 升级库版本:尽快升级到Exiv2最新版本
- 限制文件大小:在文件处理前验证PNG文件大小合理性
- 内存限制:为图像处理进程设置内存使用上限
- 异常处理:确保应用能优雅处理std::bad_alloc异常
- 沙箱扫描:在隔离环境中预扫描上传的图像文件
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














暂无评论内容