🇰🇷 한글 설명
js-yaml 라이브러리의 merge-key(<<) 처리 과정에서 특정 YAML 문서를 통해 알고리즘 CPU 고갈을 유발할 수 있는 취약점입니다. 반복적인 별칭(alias)을 사용한 조작된 문서를 통해 Node.js의 이벤트 루프를 차단하여 서비스 거부(DoS) 상태를 만들 수 있습니다.
💡 쉬운 설명
악의적으로 만들어진 YAML 파일을 읽을 때 컴퓨터의 계산 능력을 과도하게 사용하여 시스템을 멈추게 만드는 공격입니다. 작은 크기의 파일만으로도 서버를 마비시킬 수 있습니다.
🇺🇸 원문 (English)
js-yaml is a JavaScript YAML parser and dumper. Prior to 4.2.0 and 3.15.0, a crafted YAML document can trigger algorithmic CPU exhaustion in js-yaml merge-key processing (<<) by repeating the same alias many times in a merge sequence. This causes quadratic parse-time behavior relative to input size and can block a Node.js worker/event loop for seconds with a relatively small payload (tens of KB), resulting in denial of service. The issue is in merge handling inside lib/loader.js. This vulnerability is fixed in 4.2.0 and 3.15.0.
📍 영향받는 시스템
js-yaml 4.2.0 미만 및 3.15.0 미만 버전
⚔️ 공격 벡터
반복적인 별칭(alias)이 포함된 조작된 YAML 문서를 파서에 입력하여 CPU 자원을 고갈시킴
🛡️ 대응 방법
js-yaml을 4.2.0 또는 3.15.0 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 js-yaml의 버전이 4.2.0 또는 3.15.0보다 낮은지 확인