Next.js에서 권한 확인 우회 취약점 탐지 및 방어
핵심 요약
2025년 3월 21일, Next.js의 새로운 중요 권한 확인 우회 취약점(CVSS 점수 9.1)이 CVE‑2025‑29927 로 지정되어 공개되었습니다. 공격자는 이 취약점을 이용하면 프레임워크의 미들웨어 처리의 취약점을 악용해 인증 및 권한 확인 검사를 우회하고 민감한 경로에 무단 접속할 수 있습니다.
취약점은 인증 없이도 악용될 수 있으며 보호된 경로에 대한 무단 접속을 허용합니다.
Akamai의 SIG(Security Intelligence Group)는 이 취약점을 노리는 잠재적 서버를 조사하는 초기 공격 시도를 확인했습니다.
이 블로그 게시물에서 Akamai 연구원들은 취약점, 악용 기법, 탐지 전략에 대한 심층적인 세부 정보를 제공합니다.
Akamai Adaptive Security Engine Rapid Rule은 Akamai App & API Protector 고객을 자동으로 보호합니다.
CVE-2025-29927이란 무엇인가요?
CVE‑2025‑29927은 웹사이트 로딩 시간을 줄이고 SEO 가치를 높이는 데 널리 사용되는 오픈 소스 React 프레임워크인 Next.js의 권한 확인 우회 취약점입니다. 이 취약점은 2025년 3월 21일에 공개되었으며, 9.1의 매우 심각한 CVSS 등급이 할당되었습니다. 공격자가 이를 악용할 경우, 내부 용도로만 사용되는 헤더를 스푸핑해 미들웨어 기반 보안 검사를 우회할 수 있습니다.
Next.js는 요청 처리 중 무한 루프를 피하기 위해 헤더를 사용하지만 미들웨어 파일의 경로를 기반으로 하는 예측 가능한 값은 공격자가 쉽게 모방할 수 있습니다. 공격자는 HTTP 요청에 올바른 헤더 값을 포함함으로써 경우에 따라 애플리케이션이 인증 및 권한 확인 검사를 건너뛰도록 속이고 보호된 리소스에 접속할 수 있습니다.
취약점 세부 정보
Next.js는 메인 애플리케이션 로직에 도달하기 전에 들어오는 HTTP 요청을 처리하는 방법으로 미들웨어를 사용합니다. 미들웨어는 일반적으로 인증, 권한 확인, 보안 헤더 설정과 같은 중요한 작업을 수행합니다. 이 프레임워크는 이러한 프로세스를 관리하고, 내부 요청 흐름을 관리하고, 요청 처리 중 무한 재귀와 같은 문제를 방지하는 데 사용되는 “x‑middleware‑subrequest”라는 내부 헤더를 사용합니다.
핵심 문제는 “x‑middleware‑subrequest” 헤더의 부적절한 검증에 있습니다. 이 헤더는 내부 용도로만 사용하도록 되어 있지만 그 값은 예측 가능합니다. 종종 미들웨어 파일의 위치나 이름에 기반하기 때문입니다. 따라서 공격자는 이 요청 헤더를 모방하는 간단한 요청을 만들 수 있으며 이로 인해 시스템이 요청을 내부 요청으로 간주하고 중요한 검사를 우회하도록 유도할 수 있습니다.
미들웨어가 우회되면 앱이 ID 또는 역할 확인과 같은 일반적인 보안 루틴을 수행하지 않아 애플리케이션의 민감한 부분이나 제한된 부분에 무단으로 접속할 수 있는 가능성이 높아집니다. 모든 조건이 충족되면 이 취약점은 사전 인증 없이 악용될 수 있기 때문에 특히 위험합니다.
CVE-2025-29927은 Next.js의 여러 버전에 영향을 미칩니다. 악용 방법은 버전마다 약간씩 다르지만 핵심 문제는 일관되게 유지됩니다. 이전 릴리스에서는 _middleware 를 값으로 포함하는 조작된 요청 헤더를 악용하는 반면, 최신 버전에서는 업데이트된 미들웨어 파일 구조와 명명 규칙에 맞춰 middleware 또는 src/middleware 를 사용합니다.
이 취약점은 Next.js 버전 14.2.25와 15.2.3에서 수정되었지만, 14.2.25 이전 버전(14.x)과 15.2.3(15.x)을 실행하는 서버 와 11.1.4-13.5.6 버전을 실행하는 서버는 여전히 취약할 수 있습니다.
관찰된 공격 트래픽
Akamai SIG는 이 취약점을 노린 초기 공격 시도를 관찰했으며 이때 공격자는 잠재적인 서버를 조사하고 중이었습니다. 확인된 페이로드 중 주목할 만한 기술 중 하나는 x-middleware-request 헤더를 사용하는 것으로써 src/middleware:src/middleware:src/middleware:src/middleware:src/middleware값을 가지고 있었습니다.
이 접근 방식은 단일 요청 내에서 여러 개의 내부 하위 요청을 시뮬레이션해 Next.js의 내부 리디렉션 로직을 트리거하며 공개적으로 이용 가능한 여러 개념 증명(PoC) 악용 과 매우 유사합니다(그림 1).
구버전 Next.js를 대상으로 하는 다른 공격 변종도 관찰되었습니다. 그림 2는 페이로드 pages/_middleware=를 사용하는 변종을 보여줍니다.
Akamai App & API Protector를 통한 방어
2025년 3월 24일, Akamai 위협 연구팀은 CVE를 탐지하는 Adaptive Security Engine Rapid Rule도 배포했습니다(그림 3).
3000958 — Next.js 미들웨어 권한 확인 우회(CVE-2025-29927)
App & API Protector 고객은 이 새로운 룰을 통해 완전한 커버리지를 얻을 수 있습니다(그림 4).
Rapid Rule의 버전 1에서는 기본 동작이 알림으로 설정되어 있습니다. 고객은 공격 시도를 차단하기 위해 트리거를 검토한 후 룰 동작을 거부 로 설정해 오탐을 제거할 수 있습니다.
하지만, 일부 고객들이 이 헤더를 미들웨어 이름의 값으로 정상적으로 사용하고 있는 것으로 나타났습니다. 따라서 추가적인 분석과 추가적인 조건 적용 없이 이 룰 조치를 거부 로 변경하는 것은 권장하지 않습니다.
요약
Akamai SIG는 고객과 보안 커뮤니티 전체를 위해 이와 같은 위협에 대한 모니터링, 보고, 방어를 계속할 것입니다. Akamai SIG의 최신 뉴스를 확인하려면 리서치 홈페이지 를 방문하거나 소셜 미디어에서 팔로우하세요.