Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
IngressNightterror — IngressNightmare 취약점 (CVE-2025-1974)에 대한 내 견해 | Kitploit
도구/GitHubGitHub/i3r1h0n/ingressnightterror
Container SecurityVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCloud SecurityLearning & EducationPayload Development
GitHubi3r1h0n/ingressnightterror

IngressNightterror

IngressNightmare 취약점 (CVE-2025-1974)에 대한 내 견해

저장소 보기
1610개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

IngressNightterror (CVE-2025-1974)

개요

이 저장소는 IngressNightmare 취약점에 대한 제 연구입니다. 취약한 Ingress 배포 파일, 익스플로잇 자체, 공유 객체 페이로드를 포함하고 있습니다.

CVE

CVE 인덱스 목록:

  • CVE-2025-1974 - 근본 취약점
  • CVE-2025-24514 - auth-url 어노테이션 주입
  • CVE-2025-1097 - auth-tls-match-cn 어노테이션 주입
  • CVE-2025-1098 - 이미지 UID 남용

참고 자료

몇 가지 참고 자료:

  • 원본 WIZ 연구 게시물
  • Kubernetes GitHub 이슈
  • Kubernetes 블로그 게시물
  • Amazon AWS 게시판
  • Google Cloud 게시판

근본 원인

이 취약점의 근본 원인은 적절한 입력 검증(sanitization)이 부족하기 때문입니다. AdmissionReview 요청을 보내면 임시 NGINX 구성이 생성되고, 이후 nginx -t 명령어로 유효성이 검사됩니다. 버그가 완화된 소스 코드를 참조하세요.

테스트되는 구성의 내용을 제어할 수 있게 되면 다양한 구성 필드를 활용하여 잘못된 구성을 주입할 수 있습니다:

  • auth-url - 적절한 검증 없이 전달되어 #와 \n을 추가할 수 있습니다. 이 주입 지점을 사용할 것입니다.
  • auth-tls-match-cn - 필드가 CN=로 시작하고 유효한 정규식이어야 한다는 조건만 있습니다.
  • ing.UID - UID가 그대로 구성에 포함됩니다.

NGINX 구성이 테스트만 된다는 사실은 사용할 수 있는 지시어의 수를 약간 줄입니다. 남아 있는 지시어 중 하나는 ssl_engine으로, 공유 라이브러리를 로드할 수 있게 해줍니다. 좋은 진입점입니다. 하지만 어떻게 우리의 .so 파일을 파드 파일시스템에 넣을 수 있을까요?

WIZ의 똑똑한 사람들은 우리의 .so 객체를 본문으로 하여 요청을 보내면, 그것이 충분히 크면 NGINX가 procfs에 파일로 저장한다는 아이디어를 생각해냈습니다! 또한 Content-Length를 조정하여 NGINX가 더 많은 데이터를 기다리게 하여 파일을 procfs에 잠시 유지시킬 수 있습니다. 실제 PID와 FD 번호는 추측됩니다.

자세한 내용은 WIZ 연구팀의 원본 분석 기사를 읽어보세요.

익스플로잇

익스플로잇 코드는 꽤 자명합니다. 그러니 소스를 확인하세요.

테스트 환경 설정

  1. 저장소를 클론합니다:

    git clone https://github.com/I3r1h0n/IngressNightterror
    cd IngressNightterror
    
  2. Docker k3s 이미지를 시작합니다:

    cd stand
    docker compose up -d
    
  3. NGINX Ingress를 배포합니다:

    Linux/Mac을 사용하는 경우 스크립트를 사용하여 배포할 수 있습니다:

    ./k8s/setup.sh
    

    Windows를 사용하거나 배포 과정을 더 세밀하게 제어하려면 수동으로 수행하십시오:

    NGINX Ingress 배포:

    kubectl --kubeconfig=./output/kubeconfig.yaml apply -f ./k8s/ingress.yaml
    

    이제 ./output에 제공된 config로 kubectl을 사용할 수 있습니다. 네임스페이스 ingress-nginx를 사용하는 것을 잊지 마세요.

    중요 참고 사항: ingress.yaml은 취약한 NGINX Ingress를 기반으로 만들어졌습니다.

페이로드 공유 객체

페이로드는 간단한 리버스 프록시입니다. 빌드하기 전에 포트와 IP 주소를 편집하는 것을 잊지 마세요:

make all

Docker 컨테이너 gcc:latest를 사용하여 공유 객체를 빌드합니다.

크레딧

취약점을 최초로 발견한 WIZ 연구팀과 NGINX Ingress 메인테이너에게 큰 존경을 표합니다.

제작: I3r1h0n.

도구 다운로드