기술 설명
2008년에 도입되어 0.6.27~1.30.0(NGINX Open Source) 및 R32~R36(NGINX Plus)에 영향을 미치는 NGINX의 ngx_http_rewrite_module의 중요한 힙 버퍼 오버플로우 취약점. 이 취약점은 rewrite 지시문 뒤에 명명되지 않은 PCRE 캡처 및 물음표를 포함하는 교체 문자열이 있는 rewrite, if 또는 set 지시문이 따를 때 발생합니다. 인증되지 않은 원격 공격자가 조작된 HTTP 요청을 전송하여 힙 손상을 유발할 수 있으며, 이는 서비스 거부를 야기하거나 ASLR이 비활성화된 시스템에서 원격 코드 실행을 달성할 수 있습니다.
공격 경로
인증되지 않은 원격 공격자가 캡처된 값을 참조하는 set 지시문과 함께 물음표가 있는 rewrite 규칙을 사용하는 취약한 NGINX 구성을 대상으로 특별히 조작된 HTTP 요청을 전송합니다. 두 번의 길이 계산 및 복사 프로세스는 물음표가 is_args 플래그를 영구적으로 설정할 때 발산하므로 복사 패스가 NGX_ESCAPE_ARGS를 사용하여 ngx_escape_uri를 호출하여 각 이스케이프 가능한 문자를 확장하고 할당된 버퍼를 오버플로우시킵니다.
영향받는 시스템
NGINX Open Source 0.6.27-1.30.0, NGINX Plus R32-R36, NGINX Instance Manager 2.16.0-2.21.1, F5 WAF for NGINX 5.9.0-5.12.1, NGINX App Protect WAF, NGINX App Protect DoS, NGINX Gateway Fabric, NGINX Ingress Controller. F5 권고에 따르면 전 세계 모든 웹사이트의 약 3분의 1에 영향을 미칩니다.
완화 방안
NGINX Open Source 1.31.0 또는 1.30.1, 또는 NGINX Plus R37 / R36 P4 / R32 P6으로 업그레이드하십시오. 임시 완화: 캡처된 값을 참조하는 set 지시문과 함께 물음표가 있는 rewrite 규칙을 사용하는 구성을 검토합니다. F5는 상세한 권고 K000161019를 발표했습니다. 18년의 취약점 윈도우와 공개된 개념 증명 코드를 감안할 때 조직은 인터넷 노출 NGINX 배포에 대한 패치를 즉시 우선순위로 지정해야 합니다.