aliksir/nextjs-security-scanner

GitHub: aliksir/nextjs-security-scanner

一款零依赖的 Bash 安全扫描脚本,专门检测 Next.js 项目中的 React2Shell 远程代码执行漏洞(CVE-2025-55182)及凭据泄露风险。

Stars: 0 | Forks: 0

# nextjs-security-scanner 用于检测 Next.js 项目中的 CVE-2025-55182 (React2Shell) 和凭据泄露的 Bash 脚本。零依赖。 **[日本語版 README はこちら](README_ja.md)** ## CVE-2025-55182: React2Shell CVSS: **10.0 (CRITICAL)** | CWE-502: Deserialization of Untrusted Data | SNORT SID: 65554 Next.js Server Components 中因不可信数据反序列化导致的未认证远程代码执行。攻击者向任何 Next.js Server Component 端点发送精心构造的 HTTP 请求;服务器反序列化该 payload 并执行任意代码。 **受影响版本:** | 软件包 | 受影响范围 | |---------|-----------------| | Next.js | 15.0.0–15.0.4, 15.1.0–15.1.8, 15.2.0–15.2.5, 15.3.0–15.3.5, 15.4.0–15.4.7, 15.5.0–15.5.6, 15.6.0, 16.0.0–16.0.6 | | React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | **参考链接:** - NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-55182 - Cisco Talos: 在 https://blog.talosintelligence.com/ 搜索 "React2Shell" ## 此扫描器检查的内容 **阶段 1 — Next.js 版本:** 读取 `package.json`、`package-lock.json` 和 `yarn.lock` 以查找已解析的 Next.js 版本,并与受影响范围进行比对。 **阶段 2 — React 版本:** 对 React (19.0.0, 19.1.0, 19.1.1, 19.2.0) 采取相同的检测方式。 **阶段 3 — App Router / Server Components:** 检测 `app/` 目录和 `"use server"` 指令。启用了 Server Components 的受影响版本属于活跃攻击面。 **阶段 4 — 凭据泄露:** 扫描 `.env*` 文件(排除 `.env.example` 和 `.env.sample`)、`next.config.*` 以及源代码文件中的 API 密钥、数据库 URL、JWT 密钥和硬编码的密钥前缀(`sk-`、`AKIA`、`ghp_`、`npm_`)。 **阶段 5 — SSH 密钥:** 查找提交到项目内部的私钥文件(`id_rsa`、`*.pem`、`*.p12` 等)和 `.ssh/` 目录。 **阶段 6 — 云配置:** 检查 Docker Compose 文件中的硬编码密钥、Kubernetes 清单中的服务账号令牌泄露,以及 AWS SDK 使用情况中的 IMDSv2 提示。 **阶段 7 — IOC 检查:** 根据 Cisco Talos 情报搜索 C2 IP 地址以及可疑的 `/tmp/` 点文件模式(Linux)。 ``` C2 IPs (Cisco Talos): 144.172.102.88 / 172.86.127.128 / 144.172.112.136 / 144.172.117.112 ``` **阶段 8 — 汇总:** CRITICAL/WARNING/INFO 计数及修复步骤。 ## 安装 无需安装。下载并运行: ``` curl -O https://raw.githubusercontent.com/aliksir/nextjs-security-scanner/main/scan.sh bash scan.sh [target-directory] ``` 或克隆: ``` git clone https://github.com/aliksir/nextjs-security-scanner.git bash nextjs-security-scanner/scan.sh /path/to/your/nextjs-app ``` ## 用法 ``` # 扫描当前目录 bash scan.sh # 扫描特定项目 bash scan.sh /path/to/nextjs-app # 在 CI/CD 中 (非零退出 = 终止 pipeline) bash scan.sh . || exit 1 ``` **退出代码:** - `0` — 无问题 - `1` — 警告(检测到凭据特征,需审查) - `2` — 严重(确认存在受影响版本,需立即采取行动) ## 输出示例 ``` === Next.js Security Scanner === Target: /home/user/myapp Date: 2026-04-04 12:00 CVE: CVE-2025-55182 (React2Shell, CVSS 10.0) [Phase 1] Next.js version check [CRITICAL] Next.js v15.2.4 is vulnerable to CVE-2025-55182 (React2Shell) -> package.json: "next": "^15.2.4" -> This version allows unauthenticated RCE via deserialization of Server Components [Phase 2] React version check [CRITICAL] React v19.1.0 is in the CVE-2025-55182 vulnerable list [Phase 3] App Router / Server Components detection [INFO] App Router detected (app/ directory exists) [CRITICAL] Vulnerable Next.js + Server Components = active attack surface for React2Shell ... === Scan Summary === CRITICAL : 3 WARNING : 0 INFO : 2 CRITICAL issues found. Immediate action required. === Remediation (CVE-2025-55182) === 1. Upgrade Next.js to a patched version: npm install next@latest ... ``` ## 修复建议 **立即升级:** ``` npm install next@latest npm install react@latest react-dom@latest ``` 查看 https://github.com/vercel/next.js/releases 了解每个次要版本系列中首次修复的版本。 **如果怀疑已被利用:** 1. 轮换所有密钥(API 密钥、数据库凭据、JWT 密钥、SSH 密钥、云 IAM) 2. 检查后渗透痕迹: ps aux | grep -E '\.sh|\.py' crontab -l; cat /etc/cron* ss -tnp | grep -E '144\.172|172\.86' ls -la /tmp/ | grep '^\.' 3. 在防火墙阻断 C2 IP:`144.172.102.88`、`172.86.127.128`、`144.172.112.136`、`144.172.117.112` 4. 启用 SNORT 规则 SID: 65554 ## 用作 Claude Code skill ``` bash scan.sh [target-directory] ``` 触发关键词:"next.js security check"、"CVE-2025-55182"、"React2Shell"、"Next.js vulnerability scan" 详见 `claude-code/SKILL.md` 中的 skill 封装说明。 ## 免责声明 本工具仅供**防御性安全用途**。它仅对您自己的项目文件执行本地只读检查。不建立任何网络连接,不向外部发送任何数据,也不执行任何漏洞利用。 漏洞信息和 IOC 数据基于公开来源(NVD、Cisco Talos)。本扫描器可能会产生误报或遗漏某些攻击载体。它不能替代专业的安全审计、渗透测试或供应商提供的安全补丁。 **使用风险自负。** 作者对因使用本工具而造成的任何损害不承担任何责任。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)
标签:App Router, CVE-2025-55182, DNS 反向解析, GraphQL安全矩阵, RCE检测, React, React2Shell, Server Components, SSH密钥检测, StruQ, Syscalls, 云安全监控, 云配置审计, 凭证暴露, 反序列化漏洞, 安全助手, 安全扫描器, 密钥泄露, 应用安全, 环境变量检查, 网络安全, 隐私保护, 零依赖, 静态分析