🇰🇷 한글 설명
Node.js용 HTTP 콘텐츠 협상 라이브러리인 negotiator 0.6.0 및 이전 버전에서 발생하는 정규 표현식 서비스 거부(ReDoS) 취약점입니다. 공격자가 특수하게 조작된 'Accept-Language' 헤더를 전송하면 서버의 CPU 자원을 과도하게 점유하여 서비스를 중단시킬 수 있습니다.
💡 쉬운 설명
웹사이트가 사용자의 언어 설정을 확인하는 과정에서 복잡한 문자를 처리하다가 과부하가 걸리는 문제입니다. 나쁜 의도를 가진 사용자가 복잡한 요청을 보내면 웹사이트가 응답하지 못하게 만들 수 있습니다.
🇺🇸 원문 (English)
negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for "Accept-Language", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.
📍 영향받는 시스템
negotiator 0.6.0 및 그 이전 버전 (Express, Koa 등 해당 모듈을 사용하는 환경 포함)
⚔️ 공격 벡터
HTTP 요청 헤더의 'Accept-Language' 필드에 정규 표현식 엔진을 무력화하는 특수 문자열 삽입
🛡️ 대응 방법
negotiator 라이브러리를 0.6.1 이상 버전으로 업데이트
🔧 검증 코드
출력된 결과에서 negotiator의 버전이 0.6.0 이하인지 확인
npm list negotiator | grep negotiator