两位俄罗斯的安全研究人员刚刚在著名的图像处理库 ImageMagick 中发现了严重的安全漏洞。ImageMagick 用在大量的网站中,所以这个发现的零日漏洞一举将不计其数的网站暴露在安全攻击面前。
该漏洞被称之为“ImageTragick”,CVE 编号是 CVE-2016-3714。这个安全漏洞影响极其广泛,因为 ImageMagick 是除了 GD 之外使用最多的图像处理库,被广泛用于各种语言的图像处理,比如 PHP、Java、Python、Ruby 等等。许多开源软件,比如 WordPress、Drupal、Discuz 等都使用了它的图像处理功能。
通过 ImageMagick 的漏洞可以黑掉网站
据两位研究人员称,ImageMagick 中有多个安全缺陷,但是这个漏洞会导致那些允许用户上传图片(比如会员头像)的网站受到恶意制作的图片的攻击。
目前这个零日漏洞已经被 ImageMagick 项目所证实,但是尚未有修复版本发布,需要等到这个周末才能释出。不过,该项目提供了一些可以缓解该风险的方法。更多的缓解措施,可以参考 ImageTragick 网站 上的相关说明。
目前已经出现了验证该漏洞的 PoC,比如这个和另一个。
攻击者只需要找到能够上传图片的网站就行了
ImageMagick 是很多图像处理库和模块的基础,大量的编程语言都使用它来处理图像,比如 PHP、 Java、 Ruby、 JavaScript/Node.js 等等,而只要是用这些语言开发的网站就处于安全风险之中。
而唯一的条件就是网站允许用户上传图片(比如用户头像)并使用 ImageMagick 相关的库来处理它。
研究人员建议,要对上传的图片文件进行文件格式检查,比如通过 Magic Byte 来判断文件类型。Magic Byte 是一种通过文件头部的特定字节来判断文件类型的机制。
通过该漏洞,攻击者只需要构造一个特殊的文件,伪造成图片上传到服务器,服务器就会执行其中的任意代码,这相当于将整个网站的权限都交给了攻击者。
请在相应的补丁出来请先做防御性的缓解策略,并在更新版本出来后尽快更新。