🇰🇷 한글 설명
deepobj는 JavaScript에서 깊은 객체를 가져오고, 설정하고, 삭제하는 기능을 제공합니다. 1.0.3 이전 버전에서는 속성 경로에 __proto__, constructor, prototype이 포함될 경우 프로토타입 오염이 발생할 수 있습니다. 해당 속성 경로는 사용자 입력으로 노출되지 않아야 합니다. 이 취약점은 1.0.3에서 수정되었습니다.
💡 쉬운 설명
이 취약점은 객체의 기본 구조를 공격자가 임의로 변경할 수 있게 만듭니다. 사용자 입력이 잘못 처리되면 프로그램 전체의 동작이 의도와 다르게 바뀔 수 있습니다.
🇺🇸 원문 (English)
deepobj provides get, set, delete deep objects in javascript. Prior to 1.0.3, prototype pollution is possible when property paths contain __proto__/constructor/prototype. The property path must not be exposed as user input. This vulnerability is fixed in 1.0.3.
📍 영향받는 시스템
deepobj 1.0.3 미만 버전을 사용하는 Node.js/JavaScript 애플리케이션
⚔️ 공격 벡터
속성 경로에 __proto__, constructor, prototype 등을 포함한 입력을 전달하여 Object.prototype을 오염시킴
🛡️ 대응 방법
deepobj를 1.0.3 이상으로 업그레이드하고, 속성 경로를 사용자 입력으로 받지 않도록 검증합니다.
🔧 검증 코드
출력된 버전이 1.0.3 이상이면 패치 적용됨, 1.0.3 미만이거나 결과가 없으면 취약 또는 미설치 상태이므로 프로젝트 의존성을 확인합니다.
npm ls deepobj 2>/dev/null | grep deepobj