0x00 漏洞背景
2019 年 2 月 20 日 @Nadav Grossman 发表了一篇关于他如何发现一个在 WinRAR 中存在 19 年的逻辑问题以至成功实现代码执行的文章。
WinRAR 代码执行相关的 CVE 编号如下
CVE-2018-20250, CVE-2018-20251, CVE-2018-20252, CVE-2018-20253
0x01 漏洞详情
该漏洞是由于 WinRAR 所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,该动态链接库在 2006 年被编译,没有任何的基础保护机制(ASLR, DEP 等)。该动态链接库的作用是处理 ACE 格式文件。而在解压处理过程中存在一处目录穿越漏洞,允许解压过程写入文件至开机启动项,导致代码执行。
该动态链接库还被市面上的一些压缩软件所使用,可能也会存在相同的代码执行风险,360CERT建议广大用户可以自行删除软件目录下的UNACEV2.dll进行防护。
可能存在风险的软件如下
Bandizip < = 6.2.0.0
好压(2345 压缩) < = 5.9.8.10907
360 压缩已确认不受到该漏洞影响。其他产品更新请关注各自官网。
以下截图均为2019-02-21 14:00:05从各家官网下载安装后的安装目录截图
WinRAR存在的UNACEV2.dll
Bandizip存在的UNACEV2.dll
好压存在的UNACEV2.dll
WinRAR 5.70 Beta1 已经移除该DLL
0x02 影响版本
WinRAR < 5.70 Beta 1
0x03 修复建议
尽快升级到最新版本的 WinRAR 目前版本是 5.70 Beta 1
下载地址如下
32 位:http://win-rar.com/fileadmin/winrar-versions/wrar57b1.exe
64 位:http://win-rar.com/fileadmin/winrar-versions/winrar-x64-57b1.exe
UNACEV2.dll的删除方式
选择相应的软件图标,打开邮件菜单
找到相关文件执行删除操作
随后建议重启电脑
其他的压缩软件建议以相同方式处理,或关注更新动态
Bandizip < = 6.2.0.0
好压(2345 压缩) < = 5.9.8.10907
360 压缩已确认不受到该漏洞影响。其他产品更新请关注各自官网。
0x04 漏洞效果
解压恶意压缩包之前
解压恶意压缩包之后
0x05 时间线
2019-02-20 @Nadav Grossman公开漏洞细节
2019-02-21 360CERT发布预警
0x06 参考链接
Extracting a 19 Year Old Code Execution from WinRAR – Check Point Research