emresandikci/nextjs-cve-2026-23870-checker

GitHub: emresandikci/nextjs-cve-2026-23870-checker

针对 Next.js 2026 年 5 月安全公告中全部 13 个漏洞的 CLI 检测与一键修复工具,支持交互扫描、CI 集成和自动依赖升级。

Stars: 0 | Forks: 0

# @emstack/nextjs-cve-2026-23870-checker 针对 [Next.js 2026 年 5 月安全版本](https://vercel.com/changelog/next-js-may-2026-security-release) 中全部 13 个漏洞的 CLI 检测与修复工具,包括 **CVE-2026-23870**(React Server Components 中的 DoS 漏洞)。 ## 快速入门 ``` # 交互模式 (推荐) npx @emstack/nextjs-cve-2026-23870-checker # 检查项目 npx @emstack/nextjs-cve-2026-23870-checker ~/my-app # 修复 npx @emstack/nextjs-cve-2026-23870-checker ~/my-app --fix ``` ## 涵盖的公告 | ID | 严重程度 | 描述 | |----|----------|-------------| | GHSA-8h8q-6873-q5fj | 高 | **CVE-2026-23870** — React Server Components 中的 DoS 漏洞 | | GHSA-267c-6grr-h53f | 高 | App Router 中 segment-prefetch URL 授权绕过 | | GHSA-26hh-7cqf-hhc6 | 高 | segment-prefetch 绕过的不完全修复跟进 | | GHSA-36qx-fr4f-26g5 | 高 | i18n 默认语言环境路径绕过代理授权 | | GHSA-492v-c6pp-mqqv | 高 | 动态路由参数注入导致绕过 | | GHSA-mg66-mrh9-m8jx | 高 | 影响 Cache Components 的连接耗尽 | | GHSA-c4j6-fc7j-m34r | 高 | 通过 WebSocket 升级请求发起 SSRF | | GHSA-h64f-5h5j-jqjh | 中 | Image Optimization API 利用 (DoS) | | GHSA-wfc6-r584-vfw7 | 中 | RSC 响应投毒 (缓存) | | GHSA-ffhc-5mcf-pf4q | 中 | App Router 中的 CSP nonce 泄露 | | GHSA-gx5p-jg67-6x7h | 中 | 通过 `beforeInteractive` 脚本中的不受信输入实现 XSS | | GHSA-3g8h-86w9-wvmq | 低 | 通过中间件重定向进行缓存投毒 | | GHSA-vfv6-92ff-j949 | 低 | 缓存清除碰撞漏洞 | ## 受影响的版本 | 包 | 有漏洞版本 | 已修复版本 | |---------|-----------|---------| | `next` 13.x, 14.x | 所有版本 | 升级至 15.5.18 或 16.2.6 | | `next` 15.x | ≤ 15.5.17 | 15.5.18 | | `next` 16.x | ≤ 16.2.5 | 16.2.6 | | `react-server-dom-*` 19.0.x | ≤ 19.0.5 | 19.0.6 | | `react-server-dom-*` 19.1.x | ≤ 19.1.6 | 19.1.7 | | `react-server-dom-*` 19.2.x | ≤ 19.2.5 | 19.2.6 | 已检查的 `react-server-dom-*` 包:`webpack`、`turbopack`、`bun`、`esm`、`deno`。 ## 用法 ### 交互模式 在未提供参数时默认启动。会遍历根目录以发现 Next.js 项目,让你选择要扫描的项目,并可选地应用修复。 ``` npx @emstack/nextjs-cve-2026-23870-checker npx @emstack/nextjs-cve-2026-23870-checker -i ``` ### 检查项目 ``` npx @emstack/nextjs-cve-2026-23870-checker /path/to/your/nextjs-app ``` 如果发现漏洞,将以代码 `1` 退出 — 适配 CI 环境。 ### 检查多个项目 ``` npx @emstack/nextjs-cve-2026-23870-checker ~/app1 ~/app2 ~/app3 ``` 打印每个项目的报告以及末尾的汇总行。 ### 预览修复(不写入文件) ``` npx @emstack/nextjs-cve-2026-23870-checker ~/my-app --dry-run ``` ### 应用修复 更新 `package.json` 并运行相应的安装命令(`bun`、`pnpm`、`yarn` 或 `npm` — 根据锁文件自动检测)。 ``` npx @emstack/nextjs-cve-2026-23870-checker ~/my-app --fix # 一次修复多个项目 npx @emstack/nextjs-cve-2026-23870-checker ~/app1 ~/app2 --fix ``` ### JSON 输出 ``` npx @emstack/nextjs-cve-2026-23870-checker ~/my-app --json ``` ### 所有选项 ``` Usage: npx @emstack/nextjs-cve-2026-23870-checker [path...] [options] Arguments: path Project path(s) to scan (default: .) Options: -i, --interactive Interactive mode (default when no args given) --fix Update package.json and run install --dry-run Show what would change without writing files --json Output results as JSON --help, -h Show this help ``` ### 开发 ``` bun install bun run dev /path/to/your/nextjs-app bun run build # produces dist/cli.js ``` ## 示例输出 ``` Next.js May 2026 Security Release — 13 advisories Scanning: /my-app ✗ Found 2 vulnerable package(s): next Installed: ^15.3.0 → Fix: 15.5.18 Advisories (13): [High] [CVE-2026-23870] GHSA-8h8q-6873-q5fj — DoS in React Server Components [High] GHSA-267c-6grr-h53f — Segment-prefetch URL authorization bypass in App Router ... react-server-dom-webpack Installed: ^19.1.5 → Fix: 19.1.7 Advisories (2): [High] [CVE-2026-23870] GHSA-8h8q-6873-q5fj — DoS in React Server Components [Moderate] GHSA-wfc6-r584-vfw7 — RSC response poisoning (cache) Patching is the only complete mitigation. WAF-level protection unavailable. Source: https://vercel.com/changelog/next-js-may-2026-security-release Run with --fix to update package.json and install patched versions. ``` ## 许可证 MIT
标签:App Router, CISA项目, CVE-2026-23870, DoS, MITM代理, OSV, React Server Components, SSRF, Vercel, XSS, XXE攻击, 中间件, 代码安全, 前端安全, 动态分析, 安全漏洞检测, 库, 应急响应, 文档结构分析, 漏洞修复, 漏洞情报, 漏洞枚举, 缓存投毒, 网络安全, 网络安全培训, 网络安全审计, 自动化攻击, 隐私保护