Withdrawn Advisory: ImageMagick has a use-after-free/double-free risk in Options::fontFamily when clearing family · CVE-2025-65955 · GitHub Advisory Database · GitHub
已撤销的公告
此公告已撤销,因为它不影响ImageMagick项目的NuGet包。
原始描述
我们相信我们发现了ImageMagick的Magick++层中存在一个潜在的安全漏洞,该漏洞在Options::fontFamily被传入空字符串调用时显现。
漏洞详情
清除字体家族时,会对_drawInfo->font调用RelinquishMagickMemory,释放了字体字符串,但让_drawInfo->font继续指向已释放的内存,而_drawInfo->family被设置为该(现已无效的)指针。之后任何对_drawInfo->font的清理或重用都会导致对悬空内存的再次释放或解引用。
DestroyDrawInfo和其他设置器(如Options::font, Image::font)假定_drawInfo->font保持有效,因此销毁或后续更新会触发崩溃或堆损坏。
|
|
- CWE-416(释放后使用):
_drawInfo->font处于悬空状态但仍可通过Options对象访问。 - CWE-415(双重释放):DrawInfo的拆卸过程会再次释放
_drawInfo->font,引发分配器异常。
受影响版本
- 由提交 6409f34d637a34a1c643632aa849371ec8b3b5a8(“Added fontFamily to the Image class of Magick++",2015-08-01,责任行313)引入。
- 存在于所有包含该提交的版本中,至少包括ImageMagick 7.0.1-0及更高版本(可能也包括支持Magick++字体家族的较晚6.9版本)。没有
fontFamily的旧版本不受影响。
命令行触发可能性
此漏洞无法从命令行界面触发。该错误特定于Magick++ C++ API,特别是Options::fontFamily()方法。命令行工具(如convert、magick等)不会暴露此特定代码路径,因为它们通过不同的内部机制运行,不会以触发释放后使用条件的方式直接调用带有空字符串的Options::fontFamily()。
建议修复
|
|
此修改仅释放实际的家族字符串,保持_drawInfo->font不变。在清除font()本身时可选地将_drawInfo->font置空可以维持分配器的整洁性。
参考
- GHSA-q3hc-j9x5-mp9m
- https://nvd.nist.gov/vuln/detail/CVE-2025-65955
- ImageMagick/ImageMagick@6409f34
- ImageMagick/ImageMagick@6f81eb1
时间线
- dlemstra 发布至 ImageMagick/ImageMagick:2025年12月2日
- 由国家漏洞数据库发布:2025年12月2日
- 发布至GitHub公告数据库:2025年12月3日
- 已审核:2025年12月3日
- 已撤销:2025年12月11日
- 最后更新:2025年12月11日
严重性
中等
CVSS总体得分:4.9 / 10
CVSS v3 基础指标
- 攻击向量:本地
- 攻击复杂度:高
- 所需权限:无
- 用户交互:无
- 作用域:未改变
- 机密性影响:低
- 完整性影响:低
- 可用性影响:低
CVSS向量字符串:CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
EPSS 得分
- 0.016% (第3百分位数)
弱点
- CWE-415:双重释放 - 产品对同一内存地址两次调用
free()。
标识符
- CVE ID:CVE-2025-65955
- GHSA ID:GHSA-q3hc-j9x5-mp9m
源代码
- ImageMagick/ImageMagick
致谢
- 报告者:LuiginoC
此公告已编辑。请查看历史记录。