🇰🇷 한글 설명
form-data-objectizer 1.0.1 미만 버전에서 FormData를 객체로 변환할 때 __proto__, constructor, prototype 필터링이 누락되어 발생합니다. 공격자가 __proto__[...]로 시작하는 HTTP 폼 필드를 전송하면 Node.js 프로세스 전체의 Object.prototype을 변조할 수 있는 프로토타입 오염 취약점이 존재합니다.
💡 쉬운 설명
웹사이트의 입력창에 특수한 이름을 가진 데이터를 보내면, 프로그램의 근본적인 설계도를 몰래 수정할 수 있는 보안 약점입니다. 이를 통해 해커가 프로그램의 동작을 마음대로 바꾸거나 시스템을 장악할 수 있습니다.
🇺🇸 원문 (English)
form-data-objectizer converts FormData to object. Prior to 1.0.1, form-data-objectizer walks bracket-notation form keys (e.g. name[sub]) into nested objects without filtering __proto__, constructor, or prototype. A single HTTP form field whose name starts with __proto__[...] causes the library to mutate Object.prototype, which is a prototype pollution primitive of the entire Node.js process. This vulnerability is fixed in 1.0.1.
📍 영향받는 시스템
form-data-objectizer version < 1.0.1
⚔️ 공격 벡터
HTTP 요청의 FormData 필드 이름에 __proto__[...] 형식을 사용하여 프로토타입 오염 유도
🛡️ 대응 방법
form-data-objectizer 라이브러리를 1.0.1 버전 이상으로 업데이트
🔧 검증 코드
출력된 결과에서 form-data-objectizer의 버전이 1.0.1 미만인지 확인
npm list form-data-objectizer