佚名
发布于 IP属地北京

【漏洞分析】ImageMagick CVE-2022-44267 DOS 漏洞分析

ImageMagick 介绍

ImageMagick 是一款免费软件,以随时可用的二进制分发版或源代码形式提供,您可以在开放和专有应用程序中使用、复制、修改和分发。可以使用ImageMagick创建、编辑、合成或转换数字图像。它可以读取和写入多种格式(超过 200 种)的图像。

漏洞影响范围

受影响版本范围 ImageMagick 7.1.0-49,攻击者上传恶意图片到使用ImageMagick的网站,即可触发该漏洞。修复commit

漏洞原理

当ImageMagick解析PNG文件时,例如在接收图像时进行调整大小的操作,转换过程可能会留下等待标准输入时(stdin)输入,导致拒绝服务,因为该过程将无法处理其他图像。

恶意攻击者可以制作一个PNG或使用现有的PNG,并添加一个文本chunk类型(例如,tEXt)。这些类型有一个关键字和一个文本字符串。如果关键字是字符串 "profile"(不带引号),那么ImageMagick将把文本字符串解释为文件名,并将加载内容作为一个原始配置文件。如果指定的文件名是"-"(一个单一的破折号),ImageMagick将尝试从标准输入读取内容,可能会让进程永远等待。

源码视角看漏洞成因

上传图片触发ImageMagick命令,比如 "convert",对应代码 ReadOnePNGImage (coders/png.c:2164)

image.png

image.png

SetImageProperty中如果 property是profileimage.png

如果filename是 -,则执行 FileToStringInfo,继续跟进 FileToStringInfo函数

image.png

关键的来了

image.png

image.png

导致该进程永远等待输入。

PoC

等待

参考

https://www.metabaseq.com/imagemagick-zero-days/

浏览 (195)
点赞 (6)
收藏
打赏
评论