🇰🇷 한글 설명
Node.js의 serialize-to-js 패키지 0.5.0에서 deserialize() 함수가 신뢰할 수 없는 데이터를 처리할 때 IIFE(즉시 호출 함수 표현식)를 포함한 악의적 객체를 통해 임의 코드 실행이 가능합니다. 공격자는 이를 이용하여 애플리케이션의 권한으로 서버에서 임의 명령을 실행할 수 있습니다.
💡 쉬운 설명
serialize-to-js 라이브러리가 악의적인 코드가 숨겨진 데이터를 받으면 자동으로 실행해버리는 버그입니다. 공격자가 이를 악용하면 서버를 완전히 장악할 수 있습니다.
🇺🇸 원문 (English)
An issue was discovered in the serialize-to-js package 0.5.0 for Node.js. Untrusted data passed into the deserialize() function can be exploited to achieve arbitrary code execution by passing a JavaScript Object with an Immediately Invoked Function Expression (IIFE).
📍 영향받는 시스템
Node.js serialize-to-js 패키지 0.5.0 이하 버전
⚔️ 공격 벡터
신뢰할 수 없는 출처의 데이터를 deserialize() 함수에 전달할 때 IIFE가 포함된 JavaScript 객체를 주입하여 코드 실행
🛡️ 대응 방법
serialize-to-js를 0.5.1 이상으로 즉시 업그레이드하거나 신뢰할 수 없는 데이터에 deserialize() 사용 금지
🔧 검증 코드
출력된 버전이 0.5.0 이하면 취약함. 0.5.1 이상 또는 설치되지 않음이면 안전함.
npm list serialize-to-js 2>/dev/null | grep serialize-to-js