这篇文章给大家聊聊关于Widows 下WinRAR 压缩软件中的代码执行漏洞(CVE20182025*),以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
国外安全人员Nadav Grossman透露,知名压缩软件WinRAR存在安全漏洞。软件中隐藏的逻辑判断有问题。通过该漏洞可以实现代码执行。相关代码CVE代码为:CVE-2018-20250、CVE-2018-20251、CVE-2018-20252和CVE-2018-20253,
国家信息安全漏洞共享平台(CNVD)也已收录该系列漏洞(CNVD-2019-04911、CNVD-2019-04912、CNVD-2019-04913和CNVD-2019-04910,对应CVE-2018-20250, CVE-2018-20251、CVE-2018-20252和CVE-2018-20253),并发布安全公告指出,攻击者可以利用上述漏洞实现未经授权的任意代码执行。目前该漏洞的利用原理已公开,厂商已发布新版本修复该漏洞。
该漏洞不仅影响WinRAR,还影响Bandizip、360 Compression、2345 Good Compression等众多压缩软件。请使用这些软件及时更新。建议使用免费开源软件7zip,该软件不受此漏洞影响。
漏洞原理
WinRAR是Windows系统下最常用的压缩包管理器。基于Windows图形界面,可以进行数据备份、文件压缩和解压,支持RAR/ZIP等格式的文件。它在Windows用户中被广泛使用,是安装的必备软件之一。一。 WinRAR 是一款商业付费软件。大多数用户使用的中文版或破解版存在很大的安全风险,不推荐用户使用。
这一系列漏洞源于WinRAR依赖的旧动态链接库UNACEV2.dll。该库自2006年以来已有13年没有更新过。该库主要用于处理ACE格式的压缩文件。解压ACE文件时,处理代码中可能存在代码逻辑判断问题,从而导致任意目录访问的遍历漏洞。这些漏洞可被利用来写入文件,甚至添加启动项。高权限操作。该漏洞涉及的逻辑代码demo版如下:
该函数主要执行以下检查:
第一个字符是“\”或“/”;文件名不以以下字符串'.\'或'./'开头,'路径遍历'父目录;以以下开头的“路径遍历”被阻止字符串:'\.\'、'\./'、'/./'、'/.\'。
unacv2.dll 中的提取函数调用WinRAR 中的StateCallbackProc 并将ACE 格式的文件名字段作为参数传递给它。 WinRAR 回调的验证器检查相对路径,验证器将ACE_CALLBACK_RETURN_CANCEL 返回给dll(因为文件名字段以反斜杠“\”开头),并且文件创建被中止。将以下字符串传递给WinRAR 回调的验证器: '\sourbe\RED VERSION_' 此名称中的下划线将由unacv2.dll 替换为*。
由于dll 中存在错误('unacev2.dll'),回调中会返回ACE_CALLBACK_RETURN_CANCEL,并且dll 将创建相对路径(ACE 存档中的文件名字段)中指定的文件夹。由于unacev2.dll 在创建文件夹之前调用验证器,因此它会在创建文件夹后过早检查回调的返回值。因此,在调用WriteFile API 之前,它会在将内容写入提取的文件之前中止提取操作。它实际上创建了提取的文件,但没有向其中写入任何内容。它调用CreateFile API,然后检查回调函数的返回码。如果返回码是ACE_CALLBACK_RETURN_CANCEL,则实际上是删除了之前调用CreateFile API创建的文件。
由于这个漏洞允许我们只创建空文件。可以通过在文件末尾添加“:”来绕过文件删除,这会将其视为备用数据流。返回ACE_CALLBACK_RETURN_CANCEL 作为回调,然后dll 将尝试删除文件的备用数据流而不是文件本身。 dll 代码中还有另一个过滤函数,如果相对路径字符串以“\”(斜杠)开头,则会中止提取操作。但是,通过添加“*”或“?”字符(通配符)到压缩文件的相对路径(文件名字段),则跳过此检查,代码可以继续执行并触发文件遍历漏洞。由于WinRAR 代码中的回调验证器,它不会触发WinRAR 中的错误。总结:
从WinRAR 回调(ACE_CALLBACK_RETURN_CANCEL) 获取中止代码后,unacev2.dll 并未中止操作。由于延迟检查WinRAR 回调的返回代码,因此创建了利用文件中指定的目录。
提取的文件将在漏洞利用文件中指定的完整路径中创建(空文件)。
检查回调返回的代码后(调用WriteFile API 之前)立即将其删除。删除文件的方法可以绕过,但只会创建空文件。
开发
ACE 文件,重命名为.rar 格式
执行后,触发漏洞,并创建文件C:\some_folder\some_file.txt。该路径可以替换为其他更危险的目录,从而引发其他攻击,例如启动项:
受影响版本
WinRAR 5.70 Beta 1 或更低版本
Bandizip4.0.0.1170及以下版本
360压缩4.0.0.1170及以下
压缩好(2345压缩)5.9.8.10907及以下版本
7zip几年前就删除了对该动态链接库的调用,因此不受此漏洞影响。 7zip是一款开源免费的压缩软件,支持多种格式。建议大家使用。
修复建议
版本升级
尽快升级到WinRAR及上述软件的最新版本。请将WinRAR升级至5.70 Beta 1。其他软件请在正式更新后自行升级。
删除涉及的动态链接库
为了避免攻击,可以删除涉及的dll文件UNACEV2.dll并使用搜索(Everything等软件)。 WinRAR中UNACEV2.dll的截图如下:
用户评论
天呐!winrar还存在安全隐患?我还在用它压文件呢!太危险了,赶紧去更新版本或者换个其他的软件吧。
有18位网友表示赞同!
我记得winrar早就已经很久没更新了,我一直用的是其他的压缩软件,现在看来我的选择还算明智吧。
有13位网友表示赞同!
对于经常需要处理文件的人来说,win rar绝对是必备的工具,但安全确实要放在第一位,这次漏洞修复真是太重要啦!强烈建议大家注意更新
有11位网友表示赞同!
谁来告诉我怎么办啊?我已经下载了最新的版本,还能保证安全吗?
有8位网友表示赞同!
之前好像有人说WinRAR的安全性比较垃圾吧?现在看来真不是危言耸听啊!建议大家赶紧下载补丁!
有7位网友表示赞同!
作为程序员来说,我感觉こういうの 是很正常的,软件不可能是完美的。但开发者必须要及时修复漏洞,保证安全!希望 WinRAR 能重视这个问题。
有7位网友表示赞同!
我是小白,都不懂这些高端的操作,我只知道winrar以前用起来非常方便,现在这样说我还挺担心的,不知道应该怎么做呢
有7位网友表示赞同!
我记得WinRAR的最新版本号是x86系统下的,如果是x86系统的用户可以使用最新的版本就可以修复这个漏洞了。
有10位网友表示赞同!
这篇文章说的很清楚了,WinRAR确实存在代码执行漏洞,非常危险!大家一定要注意更新版本或者使用其他的软件替代!
有12位网友表示赞同!
我经常在网上下载文件的时候会用到这个压缩软件,现在想想真的有点害怕,不知道下载的文件里面会不会隐藏病毒!
有7位网友表示赞同!
看来WinRAR的安全性确实让人担忧啊,以后还是谨慎使用吧。建议大家多多学习网络安全知识,提高自己的防范意识!
有13位网友表示赞同!
这个漏洞修复得非常及时,不然后果不堪设想!希望winrarこれからも保持高水平的安全措施!
有12位网友表示赞同!
这篇文章提醒大家好好重视软件安全性问题。我们应该养成定期更新软件的习惯,防止意外风险!
有19位网友表示赞同!
我之前一直没关注这个版本的问题,看来以后要更重视软件安全了!
有12位网友表示赞同!
WinRAR是老版本的压缩工具了,安全性确实有点令人担忧,建议大家去试试其他的压缩工具。我现在就用7-Zip吧,感觉很不错!
有16位网友表示赞同!
这篇文章写的太专业了,我一点都看不懂...不过总觉得winrar的安全性好像不是很好吗?
有12位网友表示赞同!
其实无论是任何软件都要定期更新,安全问题需要不断关注。WinRAR毕竟是老牌软件,有很多用户在使用,所以修复漏洞也很重要!
有8位网友表示赞同!