🇰🇷 한글 설명
moment 패키지의 duration 함수에서 정규식 기반 서비스 거부(ReDoS) 취약점이 존재합니다. 공격자가 특정 패턴의 긴 문자열을 입력하면 정규식 처리 과정에서 지수적 시간 복잡도로 인해 과도한 CPU 자원을 소비합니다. 버전 2.11.2 이전의 Node.js용 moment 패키지에서 발생합니다.
💡 쉬운 설명
moment 라이브러리의 시간 계산 기능이 특정 길이의 입력값을 처리할 때 컴퓨터를 과도하게 일하게 만드는 버그입니다. 공격자가 이를 악용하면 웹사이트나 애플리케이션의 응답 속도를 극도로 느리게 만들 수 있습니다.
🇺🇸 원문 (English)
The duration function in the moment package before 2.11.2 for Node.js allows remote attackers to cause a denial of service (CPU consumption) via a long string, aka a "regular expression Denial of Service (ReDoS)."
📍 영향받는 시스템
Node.js용 moment 패키지 2.11.1 이전 버전
⚔️ 공격 벡터
duration 함수에 특정 패턴의 긴 문자열을 전송하여 정규식 엔진의 지수적 백트래킹 유발
🛡️ 대응 방법
moment 패키지를 2.11.2 이상으로 업그레이드 (npm install --save moment@latest 또는 yarn upgrade moment)
🔧 검증 코드
설치된 moment 버전이 2.11.2 이상이면 안전합니다. 2.11.1 이하이면 즉시 업그레이드 필요합니다.
npm list moment 2>/dev/null | grep -E 'moment@[0-9]' || grep -E '"moment"' package.json