ImageMagick警报(CVE-2026-23876):“XBM”图片上传触发大规模堆溢出

阅读量6059

发布时间 : 2026-01-21 18:02:47

x
译文声明

本文是翻译文章,文章原作者 Ddos ,文章来源:securityonline

原文地址:https://securityonline.info/imagemagick-alert-cve-2026-23876-xbm-image-uploads-trigger-massive-heap-overflow/

译文仅供参考,具体内容表达以及含义原文为准。

ImageMagick 中发现了一个新的高危漏洞。ImageMagick 是一个无处不在的图像处理库,从社交媒体平台到内容管理系统都在使用。该漏洞编号为 CVE-2026-23876,攻击者只需上传一个特制的 XBM 图像文件,即可触发大规模堆缓冲区溢出
该漏洞的 CVSS 评分为 8.1,对任何处理不可信图像的网络服务都构成重大风险,可能导致内存破坏或程序崩溃。
漏洞位于 XBM 图像解码器(coders/xbm.c)中,该组件负责处理 X Window System Bitmap 格式。根本原因是典型的整数截断问题 —— 程序认为需要的内存量与实际使用的内存量不一致。
根据漏洞报告,问题发生在软件计算新图像的缓冲区大小时。它将图像的行数(一个 64 位值)强制转换为 32 位无符号整数。
“在第 349-350 行,image->rows(size_t 类型)被截断为 unsigned int 以进行分配…… 然而,第 369-377 行的写入循环使用的是原始未截断的 image->rows 值。”
这造成了危险的不一致。如果攻击者提供一个非常大的图像行数(例如 0x500000001),系统会截断该数值,只分配一个极小的缓冲区(大约 1 字节)。然而,后续的循环却不知道这一点,它会根据原始的巨大数值继续写入数据。
“循环迭代次数:bytes_per_line * 21474836481 → 大规模溢出。”
让这个溢出特别危险的是,攻击者对溢出过程具有高度控制权。报告指出,“溢出大小” 可通过图像尺寸(行数和列数)控制,而 “写入的数据” 可通过 XBM 文件中的十六进制值控制。
这使得攻击者可以在分配的缓冲区之外写入可控字节(0x00-0xFF),从而覆盖堆上的关键内存结构。
由于 ImageMagick 是网络的基础组件,该漏洞的影响范围非常广泛。报告强调了几个主要目标:
  • 网络服务:任何带有图像上传功能的网站,例如缩略图生成器或格式转换器。
  • 内容管理系统:像 WordPress 和 Drupal 这样的流行平台通常依赖 ImageMagick 后端来处理媒体库。
  • CI/CD 流水线:自动处理用户提交的图像或资源的系统。
攻击向量非常简单:“任何使用 ImageMagick 处理不可信图像的应用程序” 都可能通过一次简单的网络上传被攻破。
该漏洞影响 7.1.2-13 之前的 7 系列版本6.9.13-38 之前的 6 系列版本
维护者已经发布了修复整数截断逻辑的补丁。使用 ImageMagick 的管理员和开发者被强烈建议立即升级到 7.1.2-13 或 6.9.13-38 版本,以降低远程攻击风险。
本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66