🇰🇷 한글 설명
msgpack5 라이브러리 6.1.0 미만 버전에서 map32 값을 디코딩할 때 5바이트 헤더 전체를 확인하기 전에 4바이트 길이를 먼저 읽는 취약점이 존재합니다. 이로 인해 잘린 헤더가 입력될 경우 RangeError가 발생하여, IncompleteBufferError를 기다리는 애플리케이션의 요청, 스트림 또는 워커를 예기치 않게 종료시킬 수 있습니다.
💡 쉬운 설명
데이터를 읽는 과정에서 형식이 잘못된 데이터가 들어오면 프로그램이 오류를 제대로 처리하지 못하고 갑자기 멈춰버릴 수 있는 문제입니다. 이로 인해 서비스가 중단되는 현상이 발생할 수 있습니다.
🇺🇸 원문 (English)
msgpack5 is a msgpack v5 implementation for node.js and the browser. Prior to 6.1.0, the decoder reads the four-byte length of a map32 value before validating that the complete five-byte header is available. A truncated map32 header therefore causes a checked out-of-bounds buffer read and throws RangeError instead of IncompleteBufferError, which can unexpectedly terminate a request, stream, or worker in applications that wait for additional bytes after IncompleteBufferError. There is no adjacent-memory disclosure because the buffer implementation checks bounds. This issue is fixed in version 6.1.0.
📍 영향받는 시스템
msgpack5 versions prior to 6.1.0
⚔️ 공격 벡터
조작된(잘린) map32 헤더를 포함한 메시지 전송을 통한 서비스 거부(DoS)
🛡️ 대응 방법
msgpack5 라이브러리를 6.1.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 6.1.0 미만인지 확인하십시오.
npm list msgpack5 | grep msgpack5