🇰🇷 한글 설명
Google V8 엔진의 Utf8DecoderBase::WriteUtf16Slow 함수에서 UTF-16 서로게이트 페어 처리 시 메모리 검증을 수행하지 않아 발생하는 취약점입니다. Node.js, io.js 등 V8을 사용하는 제품에서 조작된 바이트 시퀀스를 통해 메모리 손상이나 서비스 거부가 가능합니다.
💡 쉬운 설명
V8 자바스크립트 엔진이 특정 문자 변환 시 메모리 공간을 확인하지 않아 발생하는 문제입니다. 공격자가 특수하게 만든 데이터를 보내면 프로그램이 충돌하거나 메모리가 손상될 수 있습니다.
🇺🇸 원문 (English)
The Utf8DecoderBase::WriteUtf16Slow function in unicode-decoder.cc in Google V8, as used in Node.js before 0.12.6, io.js before 1.8.3 and 2.x before 2.3.3, and other products, does not verify that there is memory available for a UTF-16 surrogate pair, which allows remote attackers to cause a denial of service (memory corruption) or possibly have unspecified other impact via a crafted byte sequence.
📍 영향받는 시스템
Node.js < 0.12.6, io.js < 1.8.3, io.js 2.x < 2.3.3 및 V8 엔진을 사용하는 모든 제품
⚔️ 공격 벡터
네트워크 기반 공격으로 원격에서 조작된 UTF-8 바이트 시퀀스를 전송하여 메모리 손상 유발
🛡️ 대응 방법
Node.js를 0.12.6 이상, io.js를 1.8.3 또는 2.3.3 이상으로 업그레이드
🔧 검증 코드
vulnerable이 출력되면 취약한 버전, patched가 출력되면 패치된 버전입니다
node --version | grep -E 'v0\.(1[0-1]|12\.[0-5])|v2\.[0-2]' && echo 'vulnerable' || echo 'patched'