Anh-Khoa-PC/CVE-2026-npm-bin-links-RCE-Exploit

GitHub: Anh-Khoa-PC/CVE-2026-npm-bin-links-RCE-Exploit

针对 npm 核心依赖库 @npmcli/bin-links 中未修复路径遍历漏洞的概念验证代码,展示了通过恶意 package.json 的 bin 字段实现目录逃逸并潜在达成远程代码执行的方法。

Stars: 0 | Forks: 0

# 🚨 未修复的严重 RCE:@npmcli/bin-links 中的路径遍历漏洞 ### 🛡️ 发现者:Nguyen Vo Anh Khoa (khoadevvn) ### Github:(https://github.com/khoadevvn) ### Facebook:https://www.facebook.com/anhkhoavnk/ ### 🇻🇳 来源:**Vietnam** ### 🌐 社区:**Nexus VN** ### ⚠️ 状态:**未修复 (0-Day)** ### 📅 报告给 GitHub 的日期:**2025 年 12 月 20 日 (HackerOne #3473583)** ## 📝 概述 `@npmcli/bin-links` 库(**npm CLI** v11.6.0 及更早版本使用的核心组件)中存在一个严重的**路径遍历**漏洞。 由于未对 `package.json` 中的 `bin` 字段进行充分的过滤,该漏洞存在于 `lib/get-paths.js` 和 `lib/index.js` 文件中。通过构造带有遍历序列(例如 `../../`)的恶意软件包,攻击者可以在安装期间逃离预期的 `node_modules/.bin` 目录。 ## 🔍 技术分析 该库对来自 `package.json` 的不受信任输入直接使用 `path.resolve()`,而没有验证生成的路径是否保持在预期边界内。 ### **易受攻击的代码片段:** 位于 `lib/get-paths.js`: ``` for (const bin of Object.keys(pkg.bin)) { const b = resolve(binTarg, bin); // <--- VULNERABILITY: Path Traversal binSet.push(b); if (isWindows) { binSet.push(b + '.cmd'); binSet.push(b + '.ps1'); } } ```
标签:0-Day漏洞, CMS安全, DNS 解析, GitHub漏洞, GNU通用公共许可证, HackerOne, JavaScript, MITM代理, Node.js, Node包管理器, npm, npm CLI, npmcli/bin-links, package.json, Path Traversal, RCE, 恶意包, 数据可视化, 暗色界面, 未修补漏洞, 漏洞分析, 目录穿越, 编程工具, 网络安全, 自定义脚本, 路径探测, 路径遍历, 远程代码执行, 隐私保护