🇰🇷 한글 설명
node-serialize 0.0.4 패키지의 unserialize() 함수가 신뢰할 수 없는 데이터를 처리할 때 IIFE 패턴을 포함한 악의적인 JavaScript 객체를 역직렬화하여 임의의 코드 실행을 허용합니다. 공격자는 특수 조작된 직렬화 문자열을 통해 서버에서 원격으로 코드를 실행할 수 있습니다.
💡 쉬운 설명
Node.js 데이터 처리 라이브러리가 안전하지 않은 방식으로 데이터를 역직렬화할 때, 숨겨진 악의적인 코드가 자동으로 실행되는 문제입니다. 공격자가 조작된 데이터를 보내면 서버가 원하지 않는 명령을 실행하게 됩니다.
🇺🇸 원문 (English)
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Untrusted data passed into the unserialize() function can be exploited to achieve arbitrary code execution by passing a JavaScript Object with an Immediately Invoked Function Expression (IIFE).
📍 영향받는 시스템
node-serialize 패키지 버전 0.0.4 및 이전 버전이 설치된 Node.js 애플리케이션
⚔️ 공격 벡터
IIFE를 포함한 JavaScript 객체가 인코딩된 직렬화 문자열을 unserialize() 함수로 전달하여 RCE 달성
🛡️ 대응 방법
node-serialize 패키지를 최신 버전으로 업그레이드하거나 안전한 대체 직렬화 라이브러리(JSON, protobuf 등) 사용
🔧 검증 코드
설치된 node-serialize 버전이 0.0.4 이하면 취약함. 버전이 표시되지 않으면 해당 패키지가 미설치된 상태
npm list node-serialize 2>/dev/null | head -5