
구성 스캐너, Splunk/Defender 메모 및 랩 증거가 포함된 NGINX CVE-2026-42533 map regex 방어적 위험 감사
CVE-2026-42533에 대한 방어적 연구 노트입니다. 이 CVE는 정규식 캡처와 특정 변수 평가 패턴을 사용하는 map 지시문과 관련된 NGINX 요청 처리의 힙 버퍼 오버플로입니다.
쉽게 말하면: NGINX는 웹 서버이자 리버스 프록시 소프트웨어입니다. 웹사이트와 API 앞에 위치하여 웹 요청을 받아 어디로 보낼지 결정합니다. map 규칙은 "이 요청 값이 X처럼 보이면 이 변수를 Y로 설정하라"는 NGINX 구성 기능입니다. 정규식 캡처는 패턴 일치에서 추출된 텍스트 조각입니다.
이 CVE가 중요한 이유는 일부 구형 NGINX 버전이 특정 종류의 map 및 변수 조합 패턴을 잘못 처리할 수 있기 때문입니다. 모든 NGINX 서버가 노출된다는 의미는 아닙니다. 버전도 중요하지만 활성 구성도 중요합니다.
이 프로젝트는 의도적으로 안전하게 설계되었습니다. 익스플로잇 트래픽, 크래시 페이로드, 프로덕션 프로빙을 포함하지 않습니다. 목표는 노출 위험을 분류하는 방법을 보여주고, 위험을 설명하며, 방어자에게 반복 가능한 검증 경로를 제공하는 것입니다.

NGINX는 이 문제를 주요 보안 권고로 분류합니다. 취약 버전은 0.9.6-1.31.2, 수정 버전은 1.30.4+ 및 1.31.3+입니다. NGINX 변경 로그에 따르면 map 지시문이 정규식 매칭을 사용하고 그 맵의 영향을 받는 캡처 이후 문자열 표현식에 맵 변수가 포함될 때 워커 프로세스에서 힙 버퍼 오버플로가 발생합니다.
NVD는 F5 설명을 기록하고 있습니다. 인증되지 않은 공격자가 조작된 HTTP 요청으로 이 문제를 유발할 수 있지만, 구성과 런타임 조건이 일치하는 경우에만 가능합니다. 예상되는 직접적 영향은 NGINX 워커 재시작과 서비스 거부이며, ASLR이 비활성화되거나 우회되면 코드 실행 가능성도 있습니다.
방어자는 NGINX 배포를 노출된 것으로 간주하기 전에 네 가지 질문에 답해야 합니다. 간단히 말해, 먼저 버전을 확인한 다음 위험한 구성 패턴이 실제로 존재하는지 확인하십시오.
map을 사용하는가?no buffer space in script copy가 보이는가?이 단어들이 낯설다면: 워커는 요청을 처리하는 NGINX 프로세스입니다. 크래시 루프 또는 재시작 신호는 프로세스가 실패하고 다시 시작되고 있을 수 있음을 의미합니다. 배포판 백포트는 Linux 공급업체가 버전 번호를 최신 업스트림 릴리스로 변경하지 않고도 구형 버전에 패치를 적용하는 경우가 있음을 의미합니다.
flowchart LR
advisory["Read advisory and changelog"] --> version["Check NGINX version"]
version --> config["Review active config"]
config --> scanner["Run safe map-pattern scanner"]
scanner --> validate["Validate fixed build or vendor patch"]
validate --> hunt["Hunt restart and diagnostic signals"]
hunt --> remediate["Patch, reload, and document"]scripts/audit_nginx_map_risk.py
NGINX 구성 파일용 방어적 휴리스틱 스캐너입니다. 정규식 map 블록, 캡처, 그리고 캡처와 맵 출력을 참조하는 이후 문자열 표현식을 찾습니다. 서버가 익스플로잇 가능하다는 것을 증명하지는 않습니다. 사람의 검토가 필요한 구성을 찾아냅니다.
scripts/render_demo_gif.py
실제 스캐너 출력에서 작은 README 데모 GIF를 다시 생성합니다.
detections/splunk_nginx_cve_2026_42533.spl
버전 인벤토리, 크래시/재시작 증상, 패치 후 진단 문자열을 위한 Splunk 검색입니다.
detections/defender_hunting_notes.kql
NGINX 로그와 프로세스 활동이 수집되는 Linux 호스트를 위한 Microsoft Defender 헌팅 노트입니다.
detections/sigma_nginx_worker_restart_symptoms.yml
NGINX 워커 재시작 또는 크래시 증상에 대한 Sigma 헌팅 규칙입니다. 익스플로잇의 증거가 아니라 검토를 위한 단서입니다.
samples/nginx_map_patterns.conf
위험 패턴을 설명하기 위한 안전하고 개략적인 구성 예제입니다. 익스플로잇 페이로드가 아닙니다.
SECURITY.md
저장소의 범위에 대한 메모입니다. 이 프로젝트가 명확히 방어적이고 검토하기에 안전함을 유지합니다.
lab/windows-quickstart.ps1
스캐너를 실행하고 출력을 evidence/ 아래에 저장하는 Windows 친화적 증거 실행기입니다.
lab/windows-nginx-validation.ps1
공식 수정된 Windows용 NGINX 빌드를 다운로드하고, nginx -t로 로컬 랩 구성을 검증한 후 스캐너를 실행하고 증거를 저장합니다.
lab/vmware-lab-notes.md
나중에 스크린샷 기반 워크스루가 필요할 경우를 대비한 일회용 Linux VM용 선택적 전체 랩 경로입니다.
현재 로컬 검증 결과는 evidence/에 저장됩니다. Windows 퀵스타트는 포함된 샘플 구성에 대해 스캐너를 실행하고 기록을 저장합니다. Windows NGINX 검증은 공식 수정 NGINX 빌드를 다운로드하고 nginx -t로 랩 구성을 확인한 후 스캐너를 실행합니다. Kali VM 검증은 일회용 Kali VMware 게스트 내에서 동일한 스캐너를 실행합니다. 이는 이 저장소가 Windows와 Linux에서 실행 및 검토 가능하며 방어적 경계 내에 유지된다는 것을 입증합니다.
powershell -ExecutionPolicy Bypass -File .\lab\windows-quickstart.ps1
powershell -ExecutionPolicy Bypass -File .\lab\windows-nginx-validation.ps1
python .\scripts\self_check.py
map 블록을 검색합니다.1.30.4+ 또는 1.31.3+, 또는 해당 NGINX Plus 수정 릴리스로 패치합니다.no buffer space in script copy를 모니터링합니다.