🇰🇷 한글 설명
Seroval은 JSON.stringify로 표현할 수 없는 복잡한 구조까지 JavaScript 값을 직렬화하는 라이브러리입니다. 1.6.8 이전 버전에서는 fromJSON 및 fromCrossJSON이 sequence 노드의 done 인덱스를 검증하지 않아, 조작된 done 인덱스로 애플리케이션이 끝까지 소비할 때 종료되지 않는 이터레이터가 생성될 수 있습니다.
💡 쉬운 설명
신뢰할 수 없는 데이터를 역직렬화하는 서비스에 악의적인 요청을 보내면 프로그램이 끝나지 않는 작업에 빠질 수 있습니다. 이로 인해 서버가 멈추거나 메모리가 고갈되어 서비스를 이용할 수 없게 됩니다.
🇺🇸 원문 (English)
Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.
📍 영향받는 시스템
Seroval 1.6.8 미만 버전을 사용하는 Node.js 등 JavaScript 애플리케이션
⚔️ 공격 벡터
인증 없이 조작된 직렬화 데이터를 Seroval로 역직렬화하는 서비스 엔드포인트에 전송하여 이벤트 루프 차단 및 메모리 고갈을 유발
🛡️ 대응 방법
Seroval을 1.6.8 이상 버전으로 업데이트
🔧 검증 코드
출력된 seroval 버전이 1.6.8 미만이면 취약하며, 1.6.8 이상이면 패치된 상태입니다. 설치되지 않았다면 결과가 없습니다.
npm ls seroval 2>/dev/null | grep seroval