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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
NGINX_RIFT_SCAN_CVE_2026_42945 — Nginx Rewrite CVE 스캔(CVE-2026-42945 nginx-rift CVE-2026-9256) | Kitploit
도구/GitHubGitHub/friparia/nginx_rift_scan_cve_2026_42945
Static AnalysisVulnerability ScannersExploitationConfiguration AuditingWeb SecurityMisconfiguration
GitHubfriparia/nginx_rift_scan_cve_2026_42945

NGINX_RIFT_SCAN_CVE_2026_42945

Nginx Rewrite CVE 스캔(CVE-2026-42945 nginx-rift CVE-2026-9256)

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
저장소 보기
34953개월 전Kitploit 검토 완료
공유

NGINX Rift 구성 스캐너

언어: 한국어 | English

이는 NGINX 구성에 CVE-2026-42945(NGINX Rift) 및 CVE-2026-9256 위험 패턴이 존재하는지 확인하는 경량 스크립트입니다.

이 취약점은 depthfirst가 NGINX Rift: Achieving NGINX RCE via an 18-Year-Old Vulnerability 문서에서 공개했습니다. 기사와 F5/NVD 설명에 따르면 위험은 ngx_http_rewrite_module의 특정 구성 조합과 관련됩니다: 동일한 구성 컨텍스트에서 rewrite의 대체 문자열에 ?가 포함되고, 이후 rewrite, if 또는 set이 익명 PCRE 캡처 변수(예: $1, $2)를 참조하는 경우입니다.

검사 대상

이 도구는 주로 NGINX 구성 파일에 다음과 같은 고위험 패턴이 존재하는지 확인합니다.

CVE-2026-42945

다음과 같은 고위험 시퀀스:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}

위험 포인트는 개별 rewrite 또는 set이 아니라 동일한 컨텍스트에서의 실행 순서입니다:

  1. rewrite가 정규 표현식 캡처를 사용하고 대체 문자열에 ?가 포함됨
  2. 이후 rewrite, if 또는 set이 $1, $2 등과 같은 익명 캡처 변수를 사용함

이러한 조합은 NGINX 스크립트 엔진의 길이 계산과 실제 복사 단계의 상태 불일치를 유발하여 힙 버퍼 오버플로우를 초래할 수 있습니다.

CVE-2026-9256

다음과 같은 고위험 rewrite:

root@kitploit:~
location / {
    rewrite /wengine-auth-static/((.*)) /?$1$2 break;
}

위험 조건:

  1. 정규 표현식이 중첩 캡처 그룹을 포함함, 예: ^/((.*))$에서 $1이 $2를 포함
  2. 대체 문자열이 리디렉션(redirect) 또는 인수(arguments) 컨텍스트에서 여러 중첩 캡처 그룹을 참조함, 예: $1$2

참고: break는 위험을 배제하지 않습니다. 여러 중첩 캡처 그룹이 ? 뒤의 매개변수 부분에 나타나면 여전히 arguments 컨텍스트에 속합니다. 일반적인 URI rewrite(예: /$1$2 break)는 이 CVE의 트리거 조건이 아닙니다.

스크립트가 이 패턴을 감지하면 명확하게 CVE-2026-9256으로 표시합니다.

영향 범위

depthfirst 문서에 나열된 영향을 받는 범위는 다음과 같습니다:

  • NGINX Open Source 0.6.27 ~ 1.30.1
  • NGINX Plus R32 ~ R36
  • 일부 NGINX 기반 F5 / NGINX 제품

실제 수정 버전 및 제품 매트릭스는 F5 공식 공지 또는 배포판 보안 공지를 참조하십시오. 버전이 영향을 받는 범위 내에 있더라도 일반적으로 특정 rewrite 구성 시퀀스가 존재해야 취약점이 트리거됩니다.

스크립트는 현재 NGINX 버전과 구성 스캔 결과를 함께 출력합니다:

  • 버전이 0.6.27 - 1.30.1 범위에 있고 구성이 위험 시퀀스에 적중: NGINX 업그레이드 또는 구성 조정 필요.
  • 버전이 0.6.27 - 1.30.1 범위에 있지만 구성이 위험 시퀀스에 적중하지 않음: 업그레이드 권장, 하지만 이 도구가 구성 트리거 조건을 발견하지 못함.
  • 구성이 위험 시퀀스에 적중했지만 버전이 영향을 받는 범위에 없음: 구성 재검토 및 수정된 버전 유지 권장.

사용 방법

현재 시스템의 전체 NGINX 구성을 직접 스캔:

root@kitploit:~
python3 scan_rift.py

스크립트가 실행:

root@kitploit:~
nginx -T

현재 사용자가 전체 구성을 읽을 권한이 없으면 sudo를 사용하십시오:

root@kitploit:~
sudo python3 scan_rift.py

이미 내보낸 구성 파일을 스캔할 수도 있습니다:

root@kitploit:~
python3 scan_rift.py /path/to/nginx-full.conf

예를 들어 구성을 먼저 내보낸 후 스캔:

root@kitploit:~
sudo nginx -T > nginx-full.conf
python3 scan_rift.py nginx-full.conf

출력 설명

위험 시퀀스가 발견되지 않은 경우:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[+] No vulnerable CVE-2026-42945 sequences or CVE-2026-9256 patterns detected.

[Recommendation]: Current NGINX version is in the affected range, but no vulnerable config pattern was detected. Upgrade is recommended, but config risk was not found by this scanner.

의심스러운 시퀀스가 발견된 경우:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[!] VULNERABLE SEQUENCE FOUND (CVE-2026-42945):
    Context: location ~ ^/api/(.*)$ {
    [1. Rewrite With ?] rewrite ^/api/(.*)$ /internal?migrated=true;
    [2. Follow-up $N]   set $original_endpoint $1;

[Action Required]: Current NGINX version is affected and vulnerable config was found. Upgrade NGINX or adjust the reported rewrite pattern.

CVE-2026-9256 의심 패턴이 발견된 경우:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[!] VULNERABLE PATTERN FOUND (CVE-2026-9256):
    Context: location ^~ /wengine-auth-static/ {
    [Rewrite Overlapping Captures] rewrite /wengine-auth-static/((.*)) /?$1$2 break;
    [Context] arguments; overlapping refs: $1/$2

[Action Required]: Current NGINX version is affected and vulnerable config was found. Upgrade NGINX or adjust the reported rewrite pattern.

적중이 발견되면 해당 구성 컨텍스트가 외부 요청에 의해 도달 가능한지 수동으로 확인하고 가능한 한 빨리 NGINX를 업그레이드하거나 구성을 조정해야 합니다.

조치 권장사항

  • 공급업체가 발표한 수정 버전으로 업그레이드하십시오.
  • 모든 location, server, if 등의 컨텍스트에서 rewrite / set 조합을 확인하십시오.
  • ?가 포함된 rewrite 이후에 $1, $2 등과 같은 익명 캡처 변수를 계속 사용하지 마십시오.
  • redirect 또는 arguments에서 여러 중첩 캡처 그룹을 연결하지 마십시오(예: ^/((.*))$와 ?$1$2 조합).
  • break를 CVE-2026-9256의 회피 방법으로 간주하지 마십시오. /?$1$2 break는 여전히 적중됩니다.
  • 명명된 캡처 사용, 변수 사전 저장, 처리 로직 분할 또는 불필요한 쿼리 문자열 rewrite 제거를 고려하십시오.
  • 수정 전에 공개 네트워크에서 액세스 가능한 NGINX 서비스 및 리버스 프록시 진입점을 우선 처리하십시오.
  • 버전 판단에만 의존하지 마십시오. 구성에 트리거 시퀀스가 포함되어 있는지 여부도 마찬가지로 중요합니다.

제한사항

이 스크립트는 구성 정적 스캔 도구로, 빠르게 고위험 패턴을 찾는 것을 목표로 하며 취약점 악용 검증과 동일하지 않습니다.

  • 오탐 가능성이 있으므로 실제 NGINX 컨텍스트와 결합하여 수동으로 재검토해야 합니다.
  • 복잡한 여러 줄 지시문, include 확장 이상 또는 동적으로 생성된 구성이 스캔 결과에 영향을 줄 수 있습니다.
  • 위험을 스캔하지 못했다고 해서 절대적으로 안전한 것은 아니므로 공식 수정 버전으로 업그레이드해야 합니다.

참고

  • depthfirst: https://depthfirst.com/research/nginx-rift-achieving-nginx-rce-via-an-18-year-old-vulnerability
  • NVD CVE-2026-42945: https://nvd.nist.gov/vuln/detail/CVE-2026-42945
  • F5 Advisory K000161019: https://my.f5.com/manage/s/article/K000161019
도구 다운로드