wordpress WP_Image_Editor_Imagick 指令注入漏洞 修复解决方法

阿里云安骑士提醒的漏洞,升级到4.5.2依旧存在,看来这个漏洞刚发现,官方还没修复

漏洞名称:wordpress WP_Image_Editor_Imagick 指令注入漏洞
补丁文件:/www/web/shipinwhy_com/public_html/wp-includes/media.php

该修复方案为临时修复方案,可能存在兼容性风险,为了防止WP_Image_Editor_Imagick扩展的指令注入风险,将wordpress的默认图片处理库优先顺序改为GD优先,用户可在/wp-includes/media.php的_wp_image_editor_choose()函数中看到被修改的部分

 

WP_Image_Editor_Imagick漏洞本不是wordpress程序本身的漏洞,而是如果自己服务器环境中安装了ImageMagick组件且没有补丁的情况下才会被利用。

漏洞验证方法:若系统中安装使用了ImageMagick,本地执行如下命令

CONVERT 'https://example.com"|ls "-la' OUT.png

未执行ls 命令,并报错,说明不受影响,若ls -la 命令成功执行,说明存在漏洞,则需要升级组件。

经测试升级wordpress到最新4.5.2没有修复这个问题,所以只能自行修改文件了。

在/wp-includes/media.php的_wp_image_editor_choose函数内部找到:

$implementations = apply_filters( 'wp_image_editors', array( 'WP_Image_Editor_Imagick' ,  'WP_Image_Editor_GD' ) );

修改为下面这行:(即调换最后数组的顺序)

$implementations = apply_filters( 'wp_image_editors', array(  'WP_Image_Editor_GD' ,'WP_Image_Editor_Imagick' ) );

通过调换数组优先级的方法修复这个问题!