文章总结: 本文分析了CVE-2025-8088漏洞,这是一个影响WinRAR软件的目录穿越漏洞。漏洞源于RAR5.0文件格式处理中对数据流路径校验不严格,攻击者通过在数据流名称中包含目录分隔符和穿越符,导致文件名与数据流拼接时产生目录穿越。文章详细介绍了RAR5.0文件格式结构、漏洞原理、样本分析以及WinRAR7.13版本的修复方案,并从攻防两个角度进行了深入思考,提出了对终端安全产品建设和恶意样本运营策略的见解。 综合评分: 87 文章分类: 漏洞分析,漏洞POC,应用安全,实战经验,漏洞预警
危险的压缩包系列第一篇—CVE-2025-8088
原创
瓜田里的猹
不吃猹的瓜
2025年8月20日 10:15 北京
近期CVE-2025-8088及其背后的故事引起了笔者的较大兴趣,遂打算新开一个系列,品一品近年来和压缩包相关的一些漏洞,本篇先以CVE-2025-8088为品鉴目标,文中有不对的地方欢迎读者批评指出。
背景知识
简单介绍一下RAR5.0的文件格式(本文中结构描述图片主要引用参考文献一):
如上图所示,RAR5.0是一个十分清晰的线性布局的文件格式,可以简单理解为就是signature+blockarrray的结构布局,即一个8字节signature加上若干个block,block由header+data组成,不同类型的header结构是不一样的,通常有这5种类型的header:
CVE-2025-8088涉及的主要是File header和Service header。从名称中大家很容易猜测到这两种不同的header组成的block的用途:File header构成的block是用于描述压缩包中包含的文件内容及其基本信息(如文件名、文件内容等),而Service header则用于补充描述File header中相关文件信息(如文件ACL、NTFS文件流等)。File header和Service header两者结构基本一致,具体可以参见文献一,重点关注其中的name和Eextra area部分。
漏洞分析
运行相关样本,我们可以观测到如下错误提示:
从错误提示中我们可以大致猜测出应该是解压过程中,路径拼接导致了目录穿越的问题,但我们需要探究一下路径是怎么拼接的从而找到该漏洞产生的根本原因。我们先看看样本文件的结构:
可以看到文件中包含了大量的Service block(Service header+data),几个重要的Service block内容如下:
对照之前提到的重点关注Service header中的name和extra data部分,可以看到两个Service header结构中name值都为"STM",这代表这个Service header描述的是数据流信息,后面的records即是extra data部分,描述的是数据流名,大家仔细看便能发现,数据流名称中竟然包含了目录分隔符以及目录穿越符,那么至此就已经能得出基本结论了,样本通过在数据流中包含目录分隔符,从而导致最后将文件名与数据流进行拼接时产生了目录穿越漏洞。
最后,我们还得手动调试一下验证一下我们通过静态分析得到的猜测,打开ProcessMonitor,根据错误提示设置一下路径的filter,通过相关api的调用栈我们很快便能定位到漏洞产生的代码:
上图代码是在函数sub_1400D3328(winrar7.11)中调用的,直接将数据流与文件名拼接,产生最终的文件流名称,最终在createfile创建文件流时使用了这个恶意文件流名,产生了目录穿越漏洞,那么在winrar7.13中是怎么修补的呢,请看如下截图:
代码在拼接数据流之前,校验了数据流名称中是否包含分隔符,若包含了分隔符则终止解压返回失败。那么至此我们便可以得出结论,CVE-2025-8088是由于对数据流路径校验不严格导致的目录穿越漏洞。
攻防思考
防守侧
笔者也曾负责过一个终端安全产品的构建,看到这个案例也不觉开始思考之前的一些策略和方案的不足:
恶意样本运营策略
从参考文献2中这段话:
笔者猜测厂商是基于恶意样本hunting之类的方式,从某些数据源中发现了该样本,然后再顺藤摸瓜回溯至攻击源头。那么这里值得我们思考的即在于ESET是怎么从一堆数据中发现出这个可疑的压缩包呢?是否基于以往对于压缩包漏洞的学习理解,总结出的潜在危险特征,如压缩包文件路径中包含目录穿越字符?抑或是msedge这类常出现的高危dll名称?从此类case可以看出,老外将过往知识积累正反馈用于实际一线运营工作中的效果是十分显著的,不知道是否已经做到了相关流程从高度自动化,相关事件的发现能低依赖于运营人员的个人技能水平?
EDR产品的价值&未来
很遗憾的是,近几年老外披露的高水平的APT案例大都依赖于安全人员自身的极强的专业水准对于某些微小异常点的事后感知和分析,在相关文章中很少看到EDR类产品在此过程中产生的价值。笔者个人的思考是:当攻击者的动作手法越来越复杂,行为和正常软件用户行为越来越趋同时,终端安全产品基于规则产生告警的价值将越来越低,更多的是基于其数据产生的运营价值,以及和大模型相结合,探索出可落地的ueba算法和解决方案。
以上有不对之处,也欢迎大家拍砖吐槽,一同探讨。
攻击侧
好的漏洞都是艺术品,对于艺术品更要通过一流的武器化方案来体现艺术品的价值和美感。从样本中我们可以看到攻击者为了提高成功率,在样本中包含了多个不同层级的目录穿越路径,最多是能穿越5级目录,也就是说当你的样本所在目录层级超过5层,样本是无法触发成功的,同时为了迷惑受害人员也添加了一些看起来正常的数据流信息:
这些手法都展现了攻击者较高的技术水准和”工作态度”,从整个攻击链路来看,笔者个人认为通过往启动目录写快捷方式这个技术点稍显拖后腿了,笔者也在思考,如果笔者手握这个漏洞,那么整个攻击利用流程,有哪些点可以做的更好更完美,也欢迎各位读者一起交流学习。
Ref
- https://www.rarlab.com/technote.htm
- https://www.welivesecurity.com/en/eset-research/update-winrar-tools-now-romcom-and-others-exploiting-zero-day-vulnerability/
查看原文:《危险的压缩包系列第一篇—CVE-2025-8088》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论