CVE-2026-29057
Next.js: 재작성(rewrites)에서의 HTTP 요청 스머글링
- 게시됨
- 2026. 3. 18.
- 업데이트됨
- 2026. 3. 18.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 17.
기본 CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X낮음 · 다음 30일
- 백분위수
- 36.5%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Next.js는 풀스택 웹 애플리케이션을 구축하기 위한 React 프레임워크입니다. 버전 9.5.0부터 15.5.13 및 16.1.7 이전 버전에서, Next.js가 외부 백엔드로 프록시 트래픽을 재작성(rewrite)할 때, `Transfer-Encoding: chunked`를 사용하는 조작된 `DELETE`/`OPTIONS` 요청이 프록시와 백엔드 간의 요청 경계 불일치를 유발할 수 있습니다. 이로 인해 재작성된 경로를 통한 요청 스머글링(request smuggling)이 발생할 수 있습니다. 공격자는 의도하지 않은 백엔드 경로(예: 내부/관리자 엔드포인트)로 두 번째 요청을 밀반입하여, 구성된 재작성 대상/경로만 접근 가능하다는 가정을 우회할 수 있습니다. 이는 Vercel과 같이 CDN 수준에서 재작성을 처리하는 제공업체에서 호스팅되는 애플리케이션에는 영향을 미치지 않습니다. 이 취약점은 Next.js가 벤더링(vendored)한 업스트림 라이브러리에서 비롯되었습니다. Next.js 15.5.13 및 16.1.7에서 해당 의존성의 동작을 업데이트하여 `content-length`와 `transfer-encoding`이 모두 없을 때만 `content-length: 0`이 추가되고, 해당 코드 경로에서 `transfer-encoding`이 더 이상 제거되지 않도록 수정되었습니다. 업그레이드가 즉시 불가능한 경우, 엣지/프록시에서 재작성된 경로에 대한 청크(chunked) `DELETE`/`OPTIONS` 요청을 차단하고/하거나 백엔드 경로에 인증/권한 부여를 적용하십시오.
소스
2Next.js의 CVE-2025-29927, CVE-2026-27978 및 CVE-2026-29057에 대한 일부 개념 증명(PoC)입니다.
Next.js 요청 스머글링(CVE-2026-29057)을 재현하는 Docker 기반 랩으로, 취약한 15.5.12 버전과 패치된 15.5.13 버전을 raw 청크 HTTP 페이로드로 비교합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.