1. 漏洞回顾
近日,全球非常通用的压缩软件WinRAR报了个目录穿越漏洞,打开特殊构造的压缩包,可能导致植入恶意程序到系统,影响<=5.61的版本,漏洞回顾:
https://research.checkpoint.com/extracting-code-execution-from-winrar/
2. 补丁更新
官方随后发布了个漏洞修复的版本,5.70 beta 1,截止目前最新的是5.70 beta 2版本,补丁修补的方式很简单,安装新版直接删除了旧版产生漏洞的UNACEV2.DLL模块(即使覆盖安装也一样),该模块功能是支持解压ACE格式的压缩包文件,参考:
https://www.rarlab.com/rarnew.htm
3. 自行补丁
但目前发布修补漏洞(删除漏洞模块)的 beta 版本还没有发布简体中文版,对习惯简体中文版或不想用beta 版本的用户来说,可以考虑自行修补漏洞,操作步骤如下:
打开WinRAR的安装目录,通常可能是:C:\Program Files\WinRAR;
把目录下的UNACEV2.DLL文件重命名成UNACEV2.DLL.BAK或是删除即可。
删除该模块不会影响常用RAR、ZIP、7Z等格式的压缩包解压,只会影响ACE格式:

注意,UNACEV2.DLL使用广泛,其他调用该模块的程序(包括但不限于各种压缩软件)也可能存在同样的漏洞,请考虑搜索全盘文件,确认是否还有其他程序包含并调用了UNACEV2.DLL模块,目前网上提供公开下载的模块主要6个版本:
文件版本:2.0.3.0
编译时间:Fri Mar 02 06:25:23 2001
文件MD5:73DD5C2CE3CD134DC235A2D045A01000
文件版本:2.1.1.0
编译时间:Thu Mar 07 07:42:08 2002
文件MD5:7FE66F3BD9CBB998D56EF60D511FF06F
文件版本:2.6.0.2
编译时间:Fri Aug 26 23:41:21 2005
文件MD5:F9622B84D0050D590CE71FD882A130EE
文件版本:2.6.0.3
编译时间:Fri Aug 26 23:41:21 2005
文件MD5:492E0883DEFBE740D5DA3737E87C95EC
文件版本:2.6.0.0
编译时间:Fri Aug 26 23:41:21 2005
文件MD5:DE02C4D04088B69E64ECC30A3D9E22E5
文件版本:2.6.0.0
编译时间:Fri Aug 26 23:41:21 2005
文件MD5:1ABD8D68E014BC9D1FB3AAB32D47A617
经测试,2.6.0.0、2.6.0.2、2.6.0.3版本都存在漏洞,而WinRAR带的正是2.6.0.0版,另外2.0.3.0、2.1.1.0版本的漏洞触发报错:

4. 修补验证
再打开特意构造的代码执行POC压缩包时,会提示找不到UnAceV2.Dll文件:

从而漏洞利用失败,达到了补丁效果。