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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ai-vuln-rediscovery-nginx-cve-2026-42945 — nginx 리라이트 모듈의 CVE-2026-42945 힙 버퍼 오버플로우에 대한 재현 가능한 AI 지원 재발견. 감사 프롬프트, PoC 트리거, ASan 크래시 재현, 방어 연구를 위한 기술 분석을 포함합니다. | Kitploit
도구/GitHubGitHub/chamsbouzaiene/ai-vuln-rediscovery-nginx-cve-2026-42945
Vulnerability AnalysisWeb SecurityPapers & ResearchLearning & EducationAI SecurityBinary Exploitation
GitHubchamsbouzaiene/ai-vuln-rediscovery-nginx-cve-2026-42945

ai-vuln-rediscovery-nginx-cve-2026-42945

nginx 리라이트 모듈의 CVE-2026-42945 힙 버퍼 오버플로우에 대한 재현 가능한 AI 지원 재발견. 감사 프롬프트, PoC 트리거, ASan 크래시 재현, 방어 연구를 위한 기술 분석을 포함합니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
23개월 전아직 검토되지 않음

nginx에서 CVE-2026-42945의 AI 지원 재발견

이 저장소는 nginx ngx_http_rewrite_module에 대한 재현 가능한 AI 지원 취약점 재발견 실험을 문서화하며, 이후 CVE-2026-42945와 연결되었습니다.

실험은 의도적으로 범위를 좁혔습니다. 취약한 파일인 src/http/ngx_http_script.c가 모델에 직접 제공되어 감사(audit)되었습니다. 이는 AI 시스템이 전체 nginx 코드베이스에서 처음부터 자율적으로 문제를 찾았다는 주장이 아닙니다.

요약

감사된 버그는 nginx rewrite 처리 중 오래된(스테일) 스크립트 엔진 상태로 인해 발생하는 힙 버퍼 오버플로입니다.

높은 수준에서:

  1. ?를 포함하는 rewrite 대체 문자열이 e->is_args = 1을 설정합니다.
  2. 취약한 코드에서는 rewrite가 끝난 후 e->is_args가 지워지지 않습니다.
  3. 이후에 set, if 또는 rewrite 표현식에서 $1과 같은 이름 없는 정규식 캡처를 복사할 때, 캡처가 원시(raw)로 복사될 것처럼 대상 버퍼의 크기를 조정할 수 있습니다.
  4. 그러면 쓰기 단계에서 오래된 e->is_args = 1을 보고 캡처를 URI 이스케이프합니다.
  5. 이스케이프는 공백과 같은 바이트를 1바이트에서 3바이트로 확장할 수 있으므로, 쓰기 단계가 길이 단계에서 계산된 할당을 초과합니다.

로컬 AddressSanitizer 재현은 다음에서 힙 버퍼 오버플로를 확인합니다:

root@kitploit:~
ngx_escape_uri
ngx_http_script_copy_capture_code
ngx_http_rewrite_handler

이 저장소의 구성

root@kitploit:~
.
├── README.md
├── LICENSE
├── prompts/
│   ├── audit_prompt.md
│   └── poc_prompt.md
├── poc/
│   ├── trigger.py
│   ├── nginx.conf
│   ├── reproduce.sh
│   └── expected_output.txt
├── docs/
│   ├── technical-analysis.md
│   ├── vulnerability-breakdown.md
│   └── methodology.md
└── screenshots/
    └── asan-crash.png

재현 방법

PoC는 AddressSanitizer가 활성화된 취약한 nginx의 로컬 랩 빌드를 위해 설계되었습니다. 127.0.0.1:18080에서 nginx를 시작하고, 조작된 요청을 로컬 서버에 보낸 후 충돌 증거를 출력합니다.

1. ASan으로 취약한 nginx 빌드

영향을 받는 nginx 소스 트리를 사용하세요. 실험은 clang과 ASan으로 빌드된 nginx 1.30.0에서 검증되었습니다:

root@kitploit:~
./auto/configure \
  --prefix=/tmp/nginx-asan-poc \
  --with-cc-opt='-O0 -g -fsanitize=address -fno-omit-frame-pointer' \
  --with-ld-opt='-fsanitize=address'

make -j"$(getconf _NPROCESSORS_ONLN 2>/dev/null || sysctl -n hw.ncpu)"

2. PoC 실행

이 저장소에서:

root@kitploit:~
NGINX_BIN=/path/to/vulnerable/nginx/objs/nginx ./poc/reproduce.sh

이 저장소가 검증에 사용된 nginx 소스 체크아웃 내부에 직접 배치되면, 스크립트는 자동으로 ../../objs/nginx를 찾습니다.

3. 예상 결과

성공적인 재현은 다음과 유사한 ASan 보고서를 출력합니다:

root@kitploit:~
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
    #0 ngx_escape_uri ngx_string.c:1687
    #1 ngx_http_script_copy_capture_code ngx_http_script.c:1399
    #2 ngx_http_rewrite_handler ngx_http_rewrite_module.c:180

poc/expected_output.txt를 참조하세요.

ASan crash screenshot

최소 트리거 설정

PoC에서 사용하는 nginx 구성은 의도적으로 작습니다:

root@kitploit:~
location / {
    rewrite ^(.*) /new?c=1;
    set $myvar $1;
    return 200 "$myvar\n";
}

첫 번째 rewrite는 대체 문자열에 ?가 포함되어 있으므로 e->is_args를 설정합니다. 이후의 set은 그 오래된 상태가 여전히 있는 동안 $1을 평가합니다.

공식 패치

최소 패치는 정규식 rewrite가 끝날 때 스크립트 엔진의 인수 상태 플래그를 재설정합니다:

root@kitploit:~
e->is_args = 0;
e->quote = 0;

이 실험에 사용된 소스 트리에서 수정은 다음 커밋으로 나타납니다:

root@kitploit:~
524977e7c534e87e5b55739fa74601c9f1102686
Rewrite: fixed escaping and possible buffer overrun

핵심은 패치의 크기가 아니라 복원하는 상태 불변성입니다: 길이 단계와 쓰기 단계는 캡처가 URI 인수로 복사되고 있는지에 대해 일치해야 합니다.

실험 투명성

이 실험은 최첨단 코딩 에이전트를 감사 보조 도구로 사용했습니다. 프롬프트는 모델이 src/http/ngx_http_script.c의 메모리 안전 문제에 집중하고, 두 단계(길이/쓰기) 불일치에 세심한 주의를 기울이도록 명시적으로 지시했습니다.

중요한 제한 사항:

  • 취약한 소스 파일이 직접 제공되었습니다.
  • 감사 프롬프트는 버그 클래스에 매우 집중되어 있었습니다.
  • 모델은 검증 중 로컬 저장소 기록에 접근할 수 있었습니다.
  • 결과는 자율적인 버그 사냥이 아닌 안내된 재발견으로 해석되어야 합니다.
  • PoC는 충돌/ASan 증거만 보여줍니다; 무기화된 익스플로잇이 아닙니다.

정확한 프롬프트는 prompts/audit_prompt.md와 prompts/poc_prompt.md에 포함되어 있습니다.

책임 있는 사용

이 저장소는 방어 연구, 패치 검증 및 재현성을 위해 제공됩니다. PoC는 자신이 통제하는 로컬 랩 인스턴스에서만 실행하십시오.

라이선스

이 저장소의 문서와 PoC 하네스는 MIT 라이선스에 따라 배포됩니다. nginx 자체는 포함되지 않으며 자체 라이선스에 따릅니다.

도구 다운로드