
이것은 방어 및 내부 네트워크 점검을 위한 CVE-2026-42945 정적 탐지 도구로, NGINX ngx_http_rewrite_module 관련 구성에 고위험 rewrite 조합이 있는지 확인합니다.
이는 방어 및 내망 점검을 위한 CVE-2026-42945 정적 탐지 도구로, NGINX ngx_http_rewrite_module 관련 구성에서 고위험 rewrite 조합이 존재하는지 확인합니다.
이 프로젝트는 취약점 악용 코드를 제공하지 않으며, 악성 HTTP 요청을 보내지 않고, 충돌이나 원격 코드 실행을 시도하지 않습니다. 로컬 NGINX 구성 파일만 읽어 보안 팀이 업그레이드 또는 구성 수정이 필요한지 판단하는 데 도움을 줍니다.
CVE-2026-42945는 NGINX 오픈 소스 및 NGINX Plus ngx_http_rewrite_module의 힙 버퍼 오버플로 취약점입니다.
공개 공지에 설명된 위험 시나리오는 대략 다음과 같습니다.
rewrite 지시어가 존재하는 경우;rewrite, if 또는 set 지시어가 바로 뒤따르는 경우;$1, $2)를 사용하는 경우;?가 포함된 경우.NGINX 오픈 소스의 수정 버전은 1.30.1, 1.31.0 이상입니다. NGINX Plus는 공급업체 공지의 수정 버전을 기준으로 하세요.
참고 링크:
Python 3만 필요하며, 타사 종속성은 없습니다.
python3 --version
NGINX 전체 렌더링 구성을 먼저 내보내는 것을 권장합니다:
nginx -T > nginx-rendered.conf
python3 cve_2026_42945_checker.py nginx-rendered.conf
구성 디렉토리를 직접 스캔할 수도 있습니다:
python3 cve_2026_42945_checker.py /etc/nginx
JSON 출력:
python3 cve_2026_42945_checker.py --json nginx-rendered.conf
구성 내보내기에 NGINX 버전 정보가 포함되지 않은 경우, 수동으로 버전을 지정하여 보조 판단을 할 수 있습니다:
python3 cve_2026_42945_checker.py --json --nginx-version 1.30.0 nginx-rendered.conf
SARIF 출력: GitHub 코드 스캔 또는 내부 보안 플랫폼으로 가져오기 쉽습니다:
python3 cve_2026_42945_checker.py --sarif nginx-rendered.conf > cve-2026-42945.sarif
0: 고위험 구성 패턴이 발견되지 않음;1: 하나 이상의 고위험 구성 패턴 발견;2: 입력 파일 또는 경로 읽기 실패.감지 결과의 주요 필드는 다음과 같습니다:
versions: 구성 또는 매개변수에서 식별된 NGINX 버전 및 판단 결과;findings: 적중된 위험 구성 위치, 원인 및 증거;summary: 스캔된 파일 수, 발견된 수 및 최고 위험 수준.예시 위험 결과는 다음과 같은 증거를 가리킵니다:
rewrite ... ?$1; -> set ... $1;
이는 해당 구성 형태가 공개 공지에 설명된 위험 조건과 유사하여 우선적으로 검토해야 함을 나타냅니다.
NGINX를 수정된 버전으로 우선 업그레이드하세요:
1.30.1, 1.31.0 이상;또한 rewrite 규칙을 검토하는 것이 좋습니다:
$1, $2와 같은 명명되지 않은 캡처 참조에 의존하지 않도록 하세요;nginx -T로 내보낸 전체 구성을 스캔하세요.이 도구는 정적 구성 감지기이며 완전한 취약점 검증 도구가 아닙니다. 다음을 포함하지 못할 수 있습니다:
이를 내망 점검 및 구성 감사 보조 도구로 사용하고, 유일한 취약점 평가 기준으로 삼지 마세요.
테스트 실행:
python -m pytest
리포지토리에는 GitHub Actions 워크플로우가 포함되어 있으며, push 및 pull request 시 자동으로 테스트가 실행됩니다.