XananasX7/safe-chain-rce-poc

GitHub: XananasX7/safe-chain-rce-poc

该项目复现并演示了 @aikidosec/safe-chain 包中 safeSpawn.js 因正则白名单缺失换行符过滤而导致的 Windows 远程代码执行漏洞。

Stars: 0 | Forks: 0

# safe-chain RCE PoC — `safeSpawn.js` 中的换行符注入 **CVE/报告:** AIKIDO-27N49N **严重程度:** 高 — 远程代码执行 (RCE) **受影响组件:** `@aikidosec/safe-chain` — `packages/safe-chain/src/utils/safeSpawn.js` ## 漏洞详情 `safeSpawn.js` 中的 `hasShellMetaChars()` 使用了一个正则表达式白名单,其中**未包含 `\n`、`\r`、`%` 或 `^`**。 在 Windows 上,safe-chain 使用 `spawn(fullCommand, { shell: true })` —— 这意味着包名中的换行符会拆分 shell 命令并执行任意代码。 ``` // Vulnerable regex (line 25 of safeSpawn.js) const shellMetaChars = /[ "&'|;<>()$`\\!*?[\]{}~#]/; // ↑ missing: \n \r % ^ ``` ## 实时 PoC 请查看 **Actions** 标签页,了解在 `windows-latest` GitHub Actions runner 上运行真实 `aikido-npm` 和 `aikido-pip` 二进制文件的实时 CI 输出 —— 无补丁、无模拟,真实的 `os.platform() === "win32"`。 ## 修复方案 ``` // Add \n \r % ^ to the regex: const shellMetaChars = /[ "&'|;<>()$`\\!*?[\]{}~#%^\n\r]/; // Also escape % inside double quotes (cmd.exe expands even inside quotes): return arg.replace(/(["`$\\%])/g, "\\$1"); ```
标签:GNU通用公共许可证, MITM代理, Node.js, PoC, 命令注入, 数据可视化, 暗色界面, 暴力破解