GN⁺: Next.js 버전 15.2.3 보안 취약점 해결 출시
(nextjs.org)-
CVE-2025-29927
-
Next.js 버전 15.2.3이 보안 취약점(CVE-2025-29927)을 해결하기 위해 출시됨.
next start
와output: 'standalone'
을 사용하는 모든 자체 호스팅 Next.js 배포는 즉시 업데이트할 것을 권장함. -
타임라인
-
2025-02-27T06:03Z
: GitHub 비공개 취약점 보고를 통해 Next.js 팀에 공개됨 -
2025-03-14T17:13Z
: Next.js 팀이 보고서 검토 시작 -
2025-03-14T19:08Z
: Next.js 15.x에 대한 패치 배포 -
2025-03-14T19:26Z
: Next.js 14.x에 대한 패치 배포 -
2025-03-17T22:44Z
: Next.js 14.2.25 출시 -
2025-03-18T00:23Z
: Next.js 15.2.3 출시 -
2025-03-18T18:03Z
: GitHub에서 CVE-2025-29927 발행 -
2025-03-21T10:17Z
: 보안 권고문 발표 -
2025-03-22T21:21Z
: Next.js 13.5.9 출시 -
2025-03-23T06:44Z
: Next.js 12.3.5 출시
-
-
취약점 세부 사항
- Next.js는 무한 루프를 방지하기 위해 내부 헤더
x-middleware-subrequest
를 사용함. 보안 보고서에 따르면, 미들웨어 실행을 건너뛰어 중요한 검사를 우회할 수 있는 가능성이 있음.
- Next.js는 무한 루프를 방지하기 위해 내부 헤더
-
영향 범위
-
영향을 받는 경우
- 미들웨어를 사용하는 자체 호스팅 Next.js 애플리케이션 (
next start
와output: 'standalone'
) - 인증 또는 보안 검사를 위해 미들웨어에 의존하는 경우
- Cloudflare를 사용하는 애플리케이션은 관리형 WAF 규칙을 활성화할 수 있음
- 미들웨어를 사용하는 자체 호스팅 Next.js 애플리케이션 (
-
영향을 받지 않는 경우
- Vercel에 호스팅된 애플리케이션
- Netlify에 호스팅된 애플리케이션
- 정적 내보내기로 배포된 애플리케이션 (미들웨어 실행되지 않음)
-
-
패치된 버전
- Next.js 15.x:
15.2.3
에서 문제 해결됨 - Next.js 14.x:
14.2.25
에서 문제 해결됨 - Next.js 13.x:
13.5.9
에서 문제 해결됨 - Next.js 12.x:
12.3.5
에서 문제 해결됨 - 안전한 버전으로 패치가 불가능한 경우, 외부 사용자 요청이
x-middleware-subrequest
헤더를 포함하지 않도록 방지할 것을 권장함
- Next.js 15.x:
-
우리의 보안 책임
- Next.js는 2016년 이후 16개의 보안 권고문을 발표함. GitHub 보안 권고문과 CVE는 소프트웨어의 취약점을 사용자, 공급업체, 회사에 알리는 업계 표준임. 파트너와의 소통에서 부족한 점을 보완하기 위해 파트너 메일링 리스트를 개설함.
partners@nextjs.org
로 연락하여 포함될 수 있음.
- Next.js는 2016년 이후 16개의 보안 권고문을 발표함. GitHub 보안 권고문과 CVE는 소프트웨어의 취약점을 사용자, 공급업체, 회사에 알리는 업계 표준임. 파트너와의 소통에서 부족한 점을 보완하기 위해 파트너 메일링 리스트를 개설함.
Hacker News 의견
-
Next의 미들웨어 시스템은 문제가 많으며, 처음부터 다시 구현하는 것이 좋을 것 같음
- 여러 미들웨어를 체인으로 연결하는 공식적인 방법이 없음
- 주요 함수들이 정적 멤버로 되어 있어, 서드파티 미들웨어 사용 시 문제가 발생할 수 있음
- 미들웨어와 라우트 핸들러 간의 통신 방법이 부족함
- 헤더를 통해 데이터를 전달하는 방법은 안전하지 않음
- 자동 캐싱을 포기해야 하는 문제도 있음
- 요청의 실제 호스트명을 얻기 어려움
-
미들웨어 시스템의 보안 문제에 대한 다른 기사 발견
- 헤더를 통한 통신 방식이 사용자 입력 검증과 분리되어 있음
- 사용자로부터의 모든 헤더를 허용하는 것은 위험할 수 있음
- 서버 디자인의 문제를 해결하기 위한 프레임워크의 지원이 필요함
-
Next.js의 보안 취약점에 대한 정보
- 특정 헤더를 추가하면 서버가 잘못된 응답을 할 수 있는 취약점이 있었음
- 이 취약점에 대한 CVE가 없으며, 어떤 버전이 영향을 받는지 명확하지 않음
- Next.js의 지원 정책에 따라 특정 버전만 패치가 제공됨
-
Next.js의 보안 문제 해결 지연에 대한 우려
- 보고 후 2주 이상이 지나서야 문제 해결이 시작됨
- 문제의 심각성이 제대로 전달되지 않았을 가능성 있음
-
Next.js의 복잡성에 대한 비판
- React는 많은 가치를 제공했지만, Next는 복잡성을 더할 뿐임
- 파일 기반 라우팅과 서버 사이드 렌더링은 특정 상황에서만 유용함
-
보안 취약점의 간단한 실행 가능성
- 특정 헤더를 추가하면 인증을 우회할 수 있는 문제
-
Next.js의 내부 헤더 사용 문제
- 재귀 요청을 방지하기 위한 내부 헤더가 있음
- 이 헤더를 통해 중요한 검증을 우회할 수 있는 가능성 있음
-
Next.js의 자가 호스팅 선택에 대한 불안감
- HN의 댓글을 읽을수록 선택에 대한 불안감이 커짐
-
보안 문제 해결 지연에 대한 우려
- 13일 동안 문제 해결이 지연된 것은 큰 문제임