F5가 소유한 NGINX는 전 세계적으로 많이 사용되는 리버스 프록시 서버입니다. NGINX는 글로벌 인터넷의 중요한 인프라이기도 합니다. 이제 한 보안 연구 회사가 소프트웨어의 고위험 보안 취약점을 공개했습니다. 취약점 번호는 CVE-2026-42945입니다. 18년 동안 존재해 온 NGINX 스크립트 엔진에는 힙 버퍼 오버플로 문제가 있습니다.

공격자는 서버를 원격으로 장악하기 위해 노출된 NGINX 서버에 신중하게 구성된 HTTP 요청을 보내기만 하면 됩니다. NGINX는 핵심 글로벌 웹사이트 서버 및 역방향 프록시 분야의 거의 30%를 차지하므로 이 취약점은 수많은 인터넷 서비스에 영향을 미칠 수 있습니다.

NGINX 온톨로지 및 다중 파생 상품에 영향을 미칩니다.

해당 취약점은 2008년 출시된 NGINX 버전 0.6.27에서 처음으로 등장했다. 이후 해당 취약점은 오랫동안 발견되지 않아 현재까지 잠복해 있다. 이 취약점은 NGINX 버전 0.6.27~1.30.0에 영향을 미치며, F5가 상용 고객에게 제공하는 다양한 NGINX 파생 상품에도 영향을 미칩니다. 영향을 받는 파생 제품에는 NGINX WAF, F5 WAF, NGINX Gateway Fabric, NGINX Ingress Controller 등이 포함되지만 이에 국한되지는 않습니다.

취약점의 유발 조건은 매우 숨겨져 있습니다. NGINX 구성 파일에 다음 두 가지 명령이 동시에 나타나면 취약점이 활성화됩니다.

rewrite ^/api/(.*)$ /internal?migrated=true;  # 重写规则末尾带 “?” set $original_endpoint $1;                     # 使用正则捕获组

취약점을 발견한 연구팀은 취약점의 근본 원인이 ngx_http_rewrite_module의 스크립트 엔진(ngx_http_script.c)에 있다고 지적했습니다. 재작성 명령에 물음표가 포함된 경우 영구 is_args 플래그가 설정되지만 후속 명령 길이 계산 단계에서 엔진은 지워진 새 하위 엔진을 사용하므로 길이 계산 중에 URL 이스케이프 논리를 건너뜁니다.

실제 복사 단계에서는 +, & 등의 문자를 이스케이프 처리하기 위해 ngx_escape_uri 함수를 트리거하는 데 메인 엔진이 사용됩니다. 버퍼는 이스케이프되지 않은 길이에 따라 할당되지만 확장된 내용이 기록되어 궁극적으로 제어 가능한 힙 버퍼 오버플로가 발생합니다.

F5는 다음 문제를 해결하기 위해 NGINX 버전 1.31.0/1.30.1을 출시했습니다.

F5는 취약점 알림을 받은 후 빠르게 취약점을 확인했습니다. F5가 수정 사항을 준비한 후 연구원들은 취약점을 공개적으로 공개했습니다. 따라서 현재 NGINX 및 그 파생 상품을 사용하는 사용자는 영향을 받지 않는 최신 버전으로 업그레이드해야 합니다. NGINX의 오픈 소스 버전을 버전 1.30.1 또는 1.31.0으로 업그레이드해야 합니다. 버전 0.6.27~1.30.0과 같은 다른 이전 버전도 이 취약점의 영향을 받습니다.

다른 파생 상품에 대한 버전 정보는 F5 보안 게시판(https://my.f5.com/manage/s/article/K000160932)을 참조하세요.