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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nginx-rift-detect — CVE-2026-42945(NGINX Rift)에 대한 행동 기반 탐지 스크립트 — ngx_http_rewrite_module의 힙 오버플로우. RCE 없음, 크래시 기반 탐지만 지원. | Kitploit
도구/GitHubGitHub/iammerrida-source/nginx-rift-detect
Vulnerability ScannersExploitationInformation GatheringWeb SecurityNetwork SecurityPenetration Testing
GitHubiammerrida-source/nginx-rift-detect

nginx-rift-detect

CVE-2026-42945(NGINX Rift)에 대한 행동 기반 탐지 스크립트 — ngx_http_rewrite_module의 힙 오버플로우. RCE 없음, 크래시 기반 탐지만 지원.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

nginx-rift-detect

CVE-2026-42945 (NGINX Rift)에 대한 동작 탐지 스크립트 — nginx에 2008년부터 존재한 ngx_http_rewrite_module의 힙 버퍼 오버플로우입니다.

Python CVE CVSS License


⚠️ 면책 조항

이 도구는 오직 허가된 보안 테스트 및 연구를 위한 것입니다. 소유하고 있거나 명시적 서면 허가를 받은 시스템에 대해서만 실행하십시오. 무단 사용은 해당 관할권의 컴퓨터 범죄 관련 법률을 위반할 수 있습니다. 저자는 이 도구로 인한 오용이나 손해에 대해 책임을 지지 않습니다.


배경

CVE-2026-42945는 nginx의 rewrite 스크립트 엔진(ngx_http_rewrite_module)에서 발생하는 힙 버퍼 오버플로우로, 버전 0.6.27(2008)에서 도입되어 약 18년간 존재했습니다.

이 버그는 rewrite 엔진의 두 패스 간 불일치에서 발생합니다:

  • 패스 1 (길이 계산): is_args = 0을 확인 → 작은 버퍼를 할당
  • 패스 2 (데이터 복사): is_args = 1을 확인 → ngx_escape_uri를 호출하여 이스케이프 가능한 각 바이트(+ 등)를 3배 크기로 확장 → 힙 버퍼 오버플로우 발생

이를 통해 인증 없는 원격 코드 실행이 가능합니다.

영향받는 버전:

제품취약한 버전패치된 버전
NGINX 오픈소스0.6.27 – 1.30.01.30.1, 1.31.0+
NGINX PlusR32 – R36R36 P4, R35 P2, R32 P6

참고 자료:

  • 원본 연구 및 PoC — DepthFirstDisclosures
  • F5 보안 권고 K000160932

탐지 작동 방식

이 스크립트는 RCE를 시도하지 않습니다. 원시 소켓을 사용하여 PoC의 흐름을 모방합니다:

  1. 캐너리(Canary) — 테스트 전 서버가 안정적인지 확인하기 위해 일반 요청 3개를 전송
  2. 힙 스프레이(Heap spray) — 메모리를 유지하기 위해 20개의 연결을 엽니다
  3. 트리거(Trigger) — GET /api/<349×A><969×+>를 부분적인 HTTP 요청으로 전송
  4. 프로브(Probe) — 트리거 소켓이 예기치 않게 닫히면(워커가 충돌 후 재생성됨) 대상이 취약한 것으로 플래그 지정

탐지는 워커 프로세스의 충돌에 의존합니다. nginx 마스터 프로세스는 즉시 이를 다시 생성하지만, 짧은 중단이 발생합니다. 프로덕션 시스템에서는 주의해서 사용하십시오.


사용법

root@kitploit:~
# Single target (HTTP)
python3 detect-CVE-2026-42945.py --host 127.0.0.1 --port 80

# Single target (HTTPS)
python3 detect-CVE-2026-42945.py --host example.com --port 443 --tls

# List of targets
python3 detect-CVE-2026-42945.py -l targets.txt

# With threading and output file
python3 detect-CVE-2026-42945.py -l targets.txt --threads 10 -o vulnerable.txt

# More attempts for unreliable targets
python3 detect-CVE-2026-42945.py --host 10.0.0.1 --port 8080 --tries 5

targets.txt 형식 — 줄당 하나씩:

root@kitploit:~
http://example.com
https://example.com:8443
192.168.1.1
192.168.1.1:8080

옵션:

root@kitploit:~
--host          단일 대상 호스트
--port          포트(기본값: 80, --tls 사용 시 443)
--tls           단일 대상에 TLS/HTTPS 사용
-l, --list      대상 목록이 포함된 파일
--tries         대상당 탐지 시도 횟수(기본값: 3)
--threads       목록 스캔을 위한 동시 스레드 수(기본값: 5)
-o, --output    취약한 대상을 CSV 파일로 저장

예제 출력

root@kitploit:~
[*] CVE-2026-42945 NGINX Rift Detection | targets=2 threads=5 tries=3

[*] http://192.168.1.1:80   - nginx/1.28.0
[*] http://192.168.1.2:8080 - nginx/1.31.0

[!!!] VULNERABLE | http://192.168.1.1:80 | nginx/1.28.0 | worker crash (trigger connection closed — worker respawned)
[+]   http://192.168.1.2:8080 - not vulnerable (or timing miss, try --tries 5)

==================================================
[*] Scan complete. 2 targets scanned.
[!!!] 1 VULNERABLE target(s):
      http://192.168.1.1:80 (nginx/1.28.0)
==================================================

랩 환경 테스트

원본 저장소에는 Docker 랩 환경이 포함되어 있습니다:

root@kitploit:~
git clone https://github.com/DepthFirstDisclosures/Nginx-Rift
cd Nginx-Rift
chmod +x setup.sh && ./setup.sh
docker compose -f env/docker-compose.yml up -d

python3 detect-CVE-2026-42945.py --host 127.0.0.1 --port 19321

라이선스

MIT — LICENSE 참조


원본 취약점 연구 및 PoC: DepthFirstDisclosures

도구 다운로드