
Next.js 2026년 5월 보안 릴리스(CVE-2026-23870)의 13개 취약점 모두에 대한 검사기 및 수정기
Next.js 2026년 5월 보안 릴리스의 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 | 중간 | 이미지 최적화 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.
참고: 패치가 유일한 완전한 완화 방법입니다. 이러한 취약점에 대해서는 WAF 수준의 보호를 사용할 수 없습니다.
인수가 없으면 기본적으로 실행됩니다. 루트 디렉터리를 탐색하여 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
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