Yomisana/are-you-get-tanstack-attack
GitHub: Yomisana/are-you-get-tanstack-attack
针对 TanStack Router 供应链攻击(CVE-2026-45321)的专用扫描器,通过检测恶意文件、可疑依赖和受影响版本来判断项目是否被攻陷。
Stars: 0 | Forks: 0
# TanStack Router CVE 扫描器
一款用于检测您的项目中是否存在 [TanStack Router CVE](https://nvd.nist.gov/vuln/detail/CVE-2026-45321) | [TanStack Router GHSA](https://github.com/TanStack/router/security/advisories/GHSA-g7cv-rxg3-hmpx) 漏洞的安全扫描工具。
## 概述
此工具会扫描您的代码库,以查找影响特定版本 TanStack Router 软件包的 TanStack Router 漏洞 (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx) 的相关特征。它能够检测:
- 可能包含恶意代码的 `router_init.js` 文件
- `package.json` 中可疑的可选依赖项
- 已知的易受攻击软件包版本
- 锁文件 (`package-lock.json`、`pnpm-lock.yaml`、`yarn.lock`) 中的易受攻击版本
- npm 日志中的相关记录
## 已知易受攻击的版本
以下软件包版本被标记为易受攻击:
| 软件包 | 易受攻击的版本 |
|---------|---------------------|
| `@tanstack/react-router` | 1.169.5, 1.169.8 |
| `@tanstack/react-start` | 1.167.68, 1.167.71 |
| `@tanstack/router-core` | 1.169.5, 1.169.8 |
| `@tanstack/router-devtools-core` | 1.167.6, 1.167.9 |
| `@tanstack/react-router-devtools` | 1.166.16, 1.166.19 |
| `@tanstack/router-plugin` | 1.167.38, 1.167.41 |
| `@tanstack/router-vite-plugin` | 1.166.53, 1.166.56 |
| `@tanstack/router-cli` | 1.166.46, 1.166.49 |
| `@tanstack/router-generator` | 1.166.45, 1.166.48 |
| `@tanstack/virtual-file-routes` | 1.161.10, 1.161.13 |
| `@tanstack/history` | 1.161.9, 1.161.12 |
## 风险等级
- **HIGH (高风险)**: 发现 `router_init.js`、可疑的可选依赖项,或在 `package.json`/锁文件中发现易受攻击的版本
- **MEDIUM (中风险)**: 仅在 npm 日志中发现相关记录
- **LOW (低风险)**: 未发现任何相关特征
## 安装说明
### macOS
1. 打开“终端”
2. 导航到您的项目目录:
cd /path/to/your/project
3. 运行扫描器(见下方用法)
### Windows
1. 打开“命令提示符”或 PowerShell
2. 导航到您的项目目录:
cd C:\path\to\your\project
3. 运行扫描器(见下方用法)
### Linux
1. 打开终端
2. 导航到您的项目目录:
cd /path/to/your/project
3. 运行扫描器(见下方用法)
## 用法
### 基本用法
**扫描当前目录:**
```
node scan.js
```
**扫描指定文件夹:**
```
node scan.js /path/to/your/project
```
**扫描主目录:**
```
node scan.js ~
```
### 将输出保存到 JSON 文件
**macOS / Linux:**
```
node scan.js ~/your-project > scan-result.json
```
**Windows (命令提示符):**
```
node scan.js C:\Users\YourName\your-project > scan-result.json
```
**Windows (PowerShell):**
```
node scan.js C:\Users\YourName\your-project | Out-File -FilePath scan-result.json
```
### 示例工作流
**扫描单个项目:**
```
cd /Users/username/my-react-app
node scan.js . > result.json
cat result.json
```
**扫描整个系统 (macOS/Linux):**
```
node scan.js ~ > full-scan.json
```
**结合 jq 使用 (macOS/Linux) - 仅过滤出风险等级:**
```
node scan.js . | jq -r '.risk'
```
## 输出格式
扫描器输出 JSON 格式的结果,其结构如下:
```
{
"scannedRoot": "/path/to/scanned/directory",
"risk": "HIGH|MEDIUM|LOW",
"summary": {
"routerInit": 0,
"optionalDeps": 0,
"badPackageVersions": 0,
"badLockVersions": 0,
"npmLogs": 0,
"errors": 0
},
"findings": {
"routerInit": [],
"optionalDeps": [],
"badPackageVersions": [],
"badLockVersions": [],
"npmLogs": [],
"errors": []
}
}
```
## 跳过的目录
为了提高性能,扫描器会自动跳过以下目录:
- `.git`
- `.next`
- `.nuxt`
- `.turbo`
- `.cache`
- `.DS_Store`
- `dist`
- `build`
- `coverage`
- `.yarn`
大于 5MB 的文件也会被跳过。
## 如果发现漏洞该怎么办
如果扫描器报告 **HIGH (高风险)**:
1. **立即检查** 受影响的 `package.json` 文件
2. **更新易受攻击的软件包** 至最新的安全版本
3. **删除** 任何可疑的 `router_init.js` 文件
4. **清理并重新安装** 依赖项:
rm -rf node_modules package-lock.json
npm install
5. **检查** 您的锁文件中是否存在任何恶意配置
6. 如果您发现了被利用的证据,请**报告**该漏洞
## 其他资源
- [TanStack Router GitHub](https://github.com/TanStack/router)
- [NVD CVE-2026-45321](https://nvd.nist.gov/vuln/detail/CVE-2026-45321)
- [安全通报](https://github.com/TanStack/router/security/advisories/GHSA-g7cv-rxg3-hmpx)
标签:AMSI绕过, CVE-2026-45321, DNS 解析, GHSA-g7cv-rxg3-hmpx, GNU通用公共许可证, lockfile, MITM代理, Node.js, npm, package.json, pnpm, TanStack React Router, TanStack Router, URL发现, yarn, 供应链攻击, 依赖安全, 前端安全, 威胁检测, 安全检测, 数据可视化, 自定义脚本