🔍 CVE-2016-10539

7.5
CVSS Score
HIGH
2018-05-31
2026-06-17 00:39
✅ 완료

🇰🇷 한글 설명

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 이하인지 확인

Shell / Script
npm list negotiator | grep negotiator

📊 CVSS Vector String

CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Node.js