🔍 CVE-2026-73643

7.5
CVSS Score
HIGH
2026-08-13
2026-10-24 15:10
✅ 완료

🇰🇷 한글 설명

js-yaml 5.0.0부터 5.2.2 버전에서 신뢰할 수 없는 입력을 load() 또는 loadAll()로 처리할 때 지수적인 시간이 소요되는 취약점이 발견되었습니다. 특정 구조의 YAML 문서를 파싱할 때 중복 파싱이 발생하여 CPU 점유율을 급격히 높이고 프로세스를 중단시킬 수 있습니다.

💡 쉬운 설명

악의적으로 조작된 아주 작은 크기의 YAML 파일을 보내면 컴퓨터의 두뇌 역할을 하는 CPU가 과도한 계산을 하느라 멈춰버리는 현상입니다. 이를 통해 서비스가 응답하지 못하게 만드는 공격이 가능합니다.

🇺🇸 원문 (English)

js-yaml is a JavaScript YAML parser and dumper. From 5.0.0 until 5.2.2, parsing a small YAML document can take exponential time when an application calls load() or loadAll() on untrusted input. In src/parser/parser.ts, readFlowCollection uses restoreState and calls parseNode a second time when a flow-sequence entry is recognized as a key: value pair. If the key is a nested flow sequence of the same shape, every level is parsed twice, causing O(2^n) work and allowing an input under 200 bytes to keep one CPU busy for minutes, block the Node.js event loop, and stall the process. No anchors, aliases, merges, tags, or nondefault options are required. This issue is fixed in version 5.2.2.

📍 영향받는 시스템

js-yaml version 5.0.0 ~ 5.2.2

⚔️ 공격 벡터

신뢰할 수 없는 사용자가 제공한 특수하게 조작된 YAML 문서를 애플리케이션이 파싱하도록 유도

🛡️ 대응 방법

js-yaml 라이브러리를 5.2.2 이상의 최신 버전으로 업데이트

🔧 검증 코드

출력된 결과에서 js-yaml의 버전이 5.2.2 미만인지 확인

Shell / Script
npm list js-yaml

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js