🇰🇷 한글 설명
Marked 마크다운 파서의 18.0.0~18.0.1 버전에서 특정 3바이트 입력 시퀀스(탭, 세로탭, 개행)로 무한 재귀를 유발하는 DoS 취약점이 존재합니다. 이는 메모리를 무제한으로 할당하여 Node.js 애플리케이션이 OOM으로 크래시될 수 있으며, 18.0.2 버전에서 수정되었습니다.
💡 쉬운 설명
마크다운을 변환해주는 Marked 도구에 특정한 3글자를 보내면 프로그램이 멈추고 메모리를 계속 사용합니다. 컴퓨터의 메모리가 부족해져서 프로그램이 강제로 종료되는 공격입니다.
🇺🇸 원문 (English)
Marked is a markdown parser and compiler. From 18.0.0 to 18.0.1, a critical Denial of Service (DoS) vulnerability exists in marked. By providing a specific 3-byte input sequence a tab, a vertical tab, and a newline (\x09\x0b\n)—an unauthenticated attacker can trigger an infinite recursion loop during parsing. This leads to unbounded memory allocation, causing the host Node.js application to crash via Memory Exhaustion (OOM). This vulnerability is fixed in 18.0.2.
📍 영향받는 시스템
Marked 18.0.0 ~ 18.0.1
⚔️ 공격 벡터
3바이트 시퀀스(\x09\x0b\n)를 마크다운 파싱 입력으로 전송하여 무한 재귀 루프 트리거
🛡️ 대응 방법
Marked를 버전 18.0.2 이상으로 업데이트 (npm update marked)
🔧 검증 코드
출력된 버전이 18.0.2 이상이면 안전하고, 18.0.0~18.0.1이면 즉시 npm update marked 실행 필요
npm ls marked 2>/dev/null | grep marked | awk '{print $2}'