安全实验室:WinRAR漏洞威胁预警
1 漏洞概况
近日,著名解压缩软件WinRar被披露存在一个长达19年历史的漏洞, 该漏洞位于unacev2.dll库. 攻击者可构造恶意ACE文档, 使其在解压时释放任意文件到部分目录(由于winrar默认运行在中等权限级别下, 故该漏洞无法释放文件在一些需要管理员权限才能修改的目录),赤豹安全实验室对该漏洞进行了详细分析。
2 漏洞介绍
威胁类型:目录穿越漏洞
威胁等级:高
漏洞名称:
CVE-2018-20250
CVE-2018-20251
CVE-2018-20252
CVE-2018-20253
受影响系统及应用版本:
所有包含unacev2.dll的应用软件, 例如winrar, 2345好压, bandizip等.
补丁下载地址:直接删除库文件即可.
3 漏洞危害
当用户解压精心构造的ACE压缩文件时, 攻击者可在“C:Users<username>AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup”目录下释放恶意EXE文件. 当用户再次启动计算机时, 恶意代码随之执行. 系统被完全控制.
4 漏洞分析
1. 通过使得GetDevicePathLen的返回值大于0, 实现以压缩包内相对路径作为解压目的完整路径, 无视用户指定的解压目的文件夹.
2. 要实现1, 那么相对路径的选择有以下两种:
3. 相对路径在被传入1之前, 会经过unacev2.dll中CleanPath函数的处理, 该函数会将选项1中开头的”C:”删除一次, 所以为了保持不变, 可以设置两个”C:”:
选项2不受此函数影响.
4. winrar主体代码中有回调函数会再检验上述相对路径. 在ace文件解压过程中, 该回调函数会被调用, 用来检测相对路径的合法性, 若相对路径以’’开头, 那么解压过程会被终止, 故选项2不可行. 所以最终, 采用选项1的方式触发目录穿越漏洞.
5 解决方案
建议使用”Everything”软件(32位或64 位), 全盘搜索”unacev2.dll”并删除该文件.
对winrar, 可下载最新版32位或64位, 新版已删除了此文件.
Everything使用说明:
根据系统版本, 选择64位或32位安装包,安装完毕后, 打开该软件, 并输入”unacev2.dll”, 可以得到:
全选并删除即可: