
CVE-2026-42945
NGINX의 심각한 힙 기반 버퍼 오버플로우
CVE-2026-42945(NGINX Rift로도 알려짐)는 NGINX의 ngx_http_rewrite_module에서 발견된 심각한 보안 취약점입니다.
이 취약점은 URI 재작성 규칙을 처리할 때 길이 검사 단계와 실제 복사/이스케이프 단계 간의 불일치하는 버퍼 크기 계산으로 인해 발생합니다.
| 상태 | 버전 |
|---|---|
| 영향 있음 | 0.6.27 → 1.30.0 |
| 수정됨 | 1.30.1 및 1.31.0+ |
| 상태 | 릴리스 |
|---|---|
| 영향 있음 | R32 → R36 |
| 수정됨 | R36 P4, R32 P6, 37.0.0+ |
참고: 많은 F5 NGINX 제품(Ingress Controller, App Protect, Gateway Fabric 등)이 취약한 기본 버전에서 실행 중인 경우 영향을 받습니다.
이 버그는 다음과 같은 특정 지시문 조합에 의해 트리거됩니다:
?가 포함된 rewrite 지시문 (is_args 플래그 활성화)$1, $2 등)를 사용하는 다른 rewrite, if 또는 set 지시문is_args = false)을 사용하여 필요한 버퍼 크기를 과소평가합니다.is_args = true)을 사용하여 NGX_ESCAPE_ARGS와 함께 ngx_escape_uri()를 호출합니다.+, &, % 등)가 있는 경우 힙 오버플로우가 발생합니다.| 영향 | 심각도 | 설명 |
|---|---|---|
| 서비스 거부 | 높음 | 안정적인 작업자 프로세스 충돌 |
| 원격 코드 실행 | 심각함 (조건부) |
CVSS v4.0 점수: 9.2 (심각)
CVSS v3.1 점수: 8.1 (높음)
이름 없는 캡처를 이름 있는 캡처로 대체:
rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
rewrite ^/users/(?<user_id>[0-9]+)/profile/(?<section>.*)$ /profile.php?id=$user_id&tab=$section last;
핵심 권장 사항: ?가 포함된 대체 문자열과 이후의 $1, $2 등을 결합하는 모든 재작성 규칙을 감사하십시오.
CVE-2026-42945는 오랜 존재 기간, 쉬운 악용 가능성, RCE 가능성으로 인해 최근 몇 년간 가장 중요한 NGINX 취약점 중 하나입니다.
지금 조치하십시오 — 인스턴스에 패치를 적용하고 구성을 업데이트하십시오.
보안 커뮤니티를 위해 ❤️로 제작되었습니다
| ASLR이 비활성화되거나 우회된 경우 가능 |
| 공격 복잡도 | 낮음 | 단일 HTTP 요청, 인증 불필요 |