🇰🇷 한글 설명
NGINX JavaScript(njs) 엔진에서 xml.parse() 함수가 실패할 때 libxml2 파서 컨텍스트를 해제하지 못하는 메모리 누수 취약점이 발견되었습니다. 인증되지 않은 공격자가 조작된 XML 요청을 반복적으로 보내면 NGINX 워커 프로세스의 메모리가 무한히 증가하여 서비스 거부(DoS)를 유발할 수 있습니다.
💡 쉬운 설명
잘못된 형식의 XML 데이터를 보내면 서버가 사용한 메모리를 제대로 돌려받지 못하고 계속 쌓아두게 됩니다. 이 현상이 반복되면 서버의 메모리가 가득 차서 웹 서비스가 멈출 수 있습니다.
🇺🇸 원문 (English)
Description
NGINX JavaScript (njs) has a vulnerability where the built-in njs engine leaks a libxml2 parser context when xml.parse() fails. The failure path did not register cleanup and the context was not released for the lifetime of the process. An unauthenticated attacker may send requests with malformed XML and can cause unbounded memory growth in long-lived NGINX worker processes.
Impact
This vulnerability may allow remote attackers to send requests that trigger repeated parsing of malformed XML and may lead to NGINX worker termination or denial of service. There is no control plane exposure; this is a data plane issue only.
Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.
📍 영향받는 시스템
NGINX JavaScript (njs) 모듈이 포함된 NGINX 환경
⚔️ 공격 벡터
인증되지 않은 공격자가 조작된(malformed) XML 데이터를 포함한 HTTP 요청을 전송
🛡️ 대응 방법
njs 모듈을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력 결과에서 njs 모듈의 설치 여부와 현재 버전을 확인하여 취약한 버전인지 대조합니다.
nginx -V 2>&1 | grep -i 'njs'