Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-29927 — Next.js 미들웨어 인증 검사를 우회하기 위해 x-middleware-subrequest를 추가하는 CVE-2025-29927용 개념 증명 익스플로잇. | Kitploit
도구/GitHubGitHub/0xnxt1me/cve-2025-29927
Authentication & AuthorizationVulnerability AnalysisWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHub0xnxt1me/cve-2025-29927

CVE-2025-29927

Next.js 미들웨어 인증 검사를 우회하기 위해 x-middleware-subrequest를 추가하는 CVE-2025-29927용 개념 증명 익스플로잇.

저장소 보기
1421년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Next.js CVE-2025-29927

이 저장소는 Next.js에서 발견된 CVE-2025-29927 취약점에 대한 개념 증명(PoC)을 포함하고 있습니다. 이 취약점은 내부 헤더인 x-middleware-subrequest를 악용하여 인증과 같은 미들웨어 검사를 우회할 수 있습니다.

영향받는 버전

  • Next.js 15.x < 15.2.3
  • Next.js 14.x < 14.2.25
  • Next.js 13.x < 13.5.9

설치

🧪 이 프로젝트는 Next.js v13.4.19로 테스트되었습니다.

  1. 저장소를 클론합니다:
git clone https://github.com/goncalocsousa1/CVE-2025-29927.git
cd CVE-2025-29927
  1. 의존성을 설치합니다:
npm install

애플리케이션 실행

  1. 개발 서버를 시작합니다:
npm run dev
  1. 브라우저에서 애플리케이션에 접속합니다:
http://localhost:3000

웹사이트 작동 방식

이 애플리케이션은 CVE-2025-29927 취약점을 통해 우회할 수 있는 보호된 경로를 가진 간단한 인증 시스템을 보여줍니다. 작동 방식은 다음과 같습니다:

  1. 홈 페이지 (/)

    • 환영 메시지와 로그인 버튼을 표시합니다
    • 로그인 버튼을 클릭하면 가짜 인증 쿠키(auth-token)가 설정됩니다
    • "로그인" 후 사용자는 보호된 페이지로 리디렉션됩니다
  2. 보호된 페이지 (/protected)

    • 인증된 사용자만 접근할 수 있어야 하는 민감한 정보를 포함합니다
    • auth-token 쿠키의 존재를 확인하는 미들웨어로 보호됩니다
    • 일반적으로 인증되지 않은 사용자는 홈 페이지로 리디렉션됩니다
  3. 미들웨어 보호

    • 미들웨어는 사용자가 auth-token 쿠키를 가지고 있는지 확인합니다
    • 인증되지 않았고 /protected/* 경로에 접근하려고 하면 홈 페이지로 리디렉션합니다
    • 이 보호는 취약점을 이용하여 우회될 수 있습니다
  4. 취약점 시연

    • 애플리케이션은 x-middleware-subrequest 헤더가 어떻게 악용될 수 있는지 보여줍니다
    • 이를 통해 공격자는 미들웨어 인증 검사를 우회할 수 있습니다
    • 유효한 auth-token 쿠키가 없어도 공격자는 보호된 경로에 접근할 수 있습니다

공격 방법

이 애플리케이션은 일반적으로 인증이 필요한 /protected 보호 경로를 포함합니다. 그러나 x-middleware-subrequest: middleware 헤더를 curl -H "x-middleware-subrequest: middleware" http://localhost:3000/protected와 같은 요청에 사용하면 인증 검사를 우회할 수 있습니다.

Burp Suite를 사용하여 요청을 가로채고 수동으로 헤더를 추가하여 이 동작을 재현할 수도 있습니다.

Burp Suite로 시도하려면 Proxy 탭을 열고 Intercept 하위 탭으로 이동합니다. Intercept is On 상태인지 확인한 후 Open Browser를 클릭하고 보호된 경로로 이동합니다: http://localhost:3000/protected

431362649-7957bf6a-06f4-4f71-935a-dc39e5400fe9

Burp Suite가 보호된 경로에 대한 요청을 캡처합니다. 그런 다음 다음 헤더를 추가합니다: x-middleware-subrequest: middleware (위 스크린샷에서 강조 표시됨). 마지막으로 요청을 전달하고 보호된 경로에 접근합니다.

image

해결 방법

다음 패치된 버전 중 하나로 업데이트하세요:

  • Next.js 15.2.3 이상
  • Next.js 14.2.25 이상
  • Next.js 13.5.9 이상

출처

  • https://vercel.com/blog/postmortem-on-next-js-middleware-bypass
  • https://nvd.nist.gov/vuln/detail/CVE-2025-29927
도구 다운로드