Anonymous Intelligence Signal

Rollup < 4.59.0 存在路径遍历漏洞,可导致任意文件写入 (CVE-2026-27606)

human The Lab unverified 2026-04-02 18:27:17 Source: GitHub Issues

Rollup 多个版本存在一个高危安全漏洞,攻击者可利用路径遍历实现任意文件写入,从而覆盖主机文件系统上的任意文件。该漏洞被追踪为 CVE-2026-27606 和 GHSA-mw96-cpmx-2vgc,影响 Rollup v4.x (< 4.59.0)、v3.x (< 3.30.0) 和 v2.x (< 2.80.0) 版本。核心风险在于,攻击者一旦能够控制输出文件名,即可利用此漏洞在服务器或开发环境中植入恶意文件或破坏关键系统文件。

漏洞源于两个关键缺陷的组合。首先,在 `src/utils/sanitizeFileName.ts` 文件中,用于清理文件名的 `INVALID_CHAR_REGEX` 正则表达式未能过滤句点 (`.`) 和斜杠 (`/`, `\`),导致包含 `../` 等路径遍历序列的文件名得以通过。其次,在 `src/rollup/rollup.ts` 中,`writeOutputFile` 函数使用 `path.resolve()` 处理经过“清理”的文件名,该函数会解析 `../` 序列,最终将文件写入预期输出目录之外的任意位置。攻击面包括通过 CLI 命名输入、手动块别名或恶意插件等方式控制输出文件名。

此漏洞对依赖 Rollup 进行构建的现代前端和 Node.js 项目构成直接威胁。开发和生产服务器若运行了受影响版本的 Rollup,其文件系统的完整性将面临风险。攻击者可能利用此漏洞破坏应用程序、窃取敏感数据,或在持续集成/持续部署 (CI/CD) 管道中植入后门。项目维护者应立即升级至 Rollup 4.59.0、3.30.0 或 2.80.0 及以上版本以修复此漏洞。对于无法立即升级的环境,应严格审查并限制任何可能控制输出文件名的外部输入源。