Next.js에서 권한 확인 우회 취약점 탐지 및 방어

Akamai 블루 웨이브

에 의해 작성

Akamai Security Intelligence Group

March 24, 2025

미들웨어가 우회되면 앱이 정상적인 보안 루틴을 수행하지 못하게 되어 무단 접속이 발생할 수 있습니다.
미들웨어가 우회되면 앱이 정상적인 보안 루틴을 수행하지 못하게 되어 무단 접속이 발생할 수 있습니다.

핵심 요약

  • 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).

This approach simulates multiple internal subrequests within a single request, triggering Next.js’s internal redirect logic — closely resembling several publicly available proof-of-concept exploits (Figure 1). Fig. 1: Examples of a common attack variant

구버전 Next.js를 대상으로 하는 다른 공격 변종도 관찰되었습니다. 그림 2는 페이로드 pages/_middleware=를 사용하는 변종을 보여줍니다.

Figure 2 illustrates a variant that used the payload pages/_middleware=. Fig 2: Another example of a common attack variant

Akamai App & API Protector를 통한 방어

2025년 3월 24일, Akamai 위협 연구팀은 CVE를 탐지하는 Adaptive Security Engine Rapid Rule도 배포했습니다(그림 3).

  • 3000958 — Next.js 미들웨어 권한 확인 우회(CVE-2025-29927)

On March 24, 2025, Akamai Threat Research Team also deployed an Adaptive Security Engine Rapid Rule that detects the CVE (Figure 3). Fig 3. Rapid Rule trigger as seen in Web Security Analytics

App & API Protector 고객은 이 새로운 룰을 통해 완전한 커버리지를 얻을 수 있습니다(그림 4).

On March 24, 2025, Akamai Threat Research Team also deployed an Adaptive Security Engine Rapid Rule for App & API Protector customers to provide them with full coverage (Figure 4). Fig. 4: Adaptive Security Engine Rapid Rule provides full coverage to App & API Protector customers

Rapid Rule의 버전 1에서는 기본 동작이 알림으로 설정되어 있습니다. 고객은 공격 시도를 차단하기 위해 트리거를 검토한 후 룰 동작을 거부 로 설정해 오탐을 제거할 수 있습니다.

하지만, 일부 고객들이 이 헤더를 미들웨어 이름의 값으로 정상적으로 사용하고 있는 것으로 나타났습니다. 따라서 추가적인 분석과 추가적인 조건 적용 없이 이 룰 조치를 거부 로 변경하는 것은 권장하지 않습니다.

요약

Akamai SIG는 고객과 보안 커뮤니티 전체를 위해 이와 같은 위협에 대한 모니터링, 보고, 방어를 계속할 것입니다. Akamai SIG의 최신 뉴스를 확인하려면 리서치 홈페이지 를 방문하거나 소셜 미디어에서 팔로우하세요.



Akamai 블루 웨이브

에 의해 작성

Akamai Security Intelligence Group

March 24, 2025