漏洞总结:远程代码执行 (CVE-2018-918) 漏洞概述 漏洞名称:Remote Code Execution via Malicious Update Package (Zip Slip + SSRF) 漏洞编号:CVE-2018-918 严重程度:Critical (CVSS v3.1 Score: 10.0) 受影响项目:Toonflow-app 受影响版本:v1.1.1 (及之前所有版本) 漏洞成因: 1. SSRF:更新机制允许从任意 URL 下载 ZIP 包,未限制协议或主机。 2. Zip Slip:解压 ZIP 包时未对文件路径进行校验,导致恶意文件可写入任意目录。 3. 任意代码执行:解压后的文件(如 )被强制覆盖到应用运行目录,导致服务器代码被替换。 影响范围 完全服务器接管:攻击者通过替换服务器代码植入后门。 供应链攻击:恶意代码被伪装成合法更新。 持久化访问:后门在应用重启后依然存在。 SSRF 利用:即使不执行代码,SSRF 也可用于访问内部网络和云元数据。 数据破坏:可覆盖提示词模板和 ML 模型。 修复方案 1. URL 白名单:验证更新 URL 是否在硬编码的受信任域名列表中。 2. 完整性校验:在解压前使用加密签名 (GPG 或代码签名) 验证 ZIP 完整性。 3. 路径校验:验证归档条目,拒绝包含 或绝对路径的文件。 4. 权限控制:禁止从用户操作覆盖正在运行的服务器代码。 5. 签名验证**:实施基于签名清单文件的更新验证。 POC 代码 (利用代码) Step 1: 获取 JWT Token Step 2: 创建恶意 ZIP 文件 Step 3: 托管恶意 ZIP Step 4: 触发恶意更新 Step 5: 验证服务器代码替换 Step 6: 验证 SSRF 组件 (内部网络访问)