关键信息 漏洞概述 编号: [RF-01] 标题: Zip Slip Remote Code Execution (RCE) in MinerUParser 严重性: Critical (CVSS 9.1) 文件: deepdoc/parser/mineru_parser.py 漏洞类型: Arbitrary File Write (Zip Slip) 影响版本: 0.23.1 修复版本: None 漏洞详情 摘要 关键RCE (Zip Slip): MinerU解析器包含一个"Zip Slip"漏洞,允许攻击者通过恶意ZIP存档覆盖服务器上的任意文件,从而导致远程代码执行。 问题: MinerUParser类从外部源(如 )检索和提取ZIP文件,且在 中的提取逻辑未能对ZIP存档内的文件名进行验证。 漏洞代码分析 位置: deepdoc/parser/mineru_parser.py:167 问题: 代码依赖于'path'(由zip成员名派生)而未进行验证。 具体代码: 风险: 如果ZIP文件包含名为 的文件,Python的 会解析路径遍历序列,导致文件被写入预期提取目录之外。 漏洞利用向量 (RCE) 准备工作: 攻击者创建一个特殊的ZIP文件,包含带有目录遍历字符的Python脚本(如 )。 交付: 攻击者将此文件放置于解析器处理的位置,例如通过HTTP的中间人攻击或通过配置指向攻击者控制的服务器。 执行: 当Ragflow提取ZIP时,它会悄无声息地覆盖服务器上的目标Python文件。 触发器: 应用再次导入该模块或重启时,攻击者的代码将利用Ragflow进程的权限执行。 证明概念 (PoC) 影响 任意文件写入: 可导致远程代码执行(RCE),通过重写Python源文件(.py),配置文件或启动脚本。 系统破坏: 重写关键系统二进制文件或数据可能导致拒绝服务(DoS)。 修复建议 修改Zip Slip: 通过规范化路径,修复 中的Zip Slip。 ```python dest_path = os.path.join(extract_to, filename) 解析符号链接以及解决'..'组成部分 if not os.path.abspath(dest_path).startswith(os.path.abspath(extract_to)): raise Exception("Blocked Zip Slip Attempt!")