
This is a proof-of-concept demonstrating CVE-2020-8158, a critical prototype pollution vulnerability in TypeORM versions < 0.2.25.
이것은 TypeORM 버전 < 0.2.25에서 발생하는 심각한 프로토타입 오염 취약점인 CVE-2020-8158을 입증하는 개념 증명입니다.
공격자는 다음을 수행할 수 있습니다:
이 취약점은 데이터베이스 쿼리 결과를 처리할 때 TypeORM의 객체 역직렬화 처리 방식에 존재합니다. 라이브러리가 __proto__, constructor, prototype과 같은 프로토타입 오염 키를 정제하지 않고 사용자 제어 데이터를 객체에 부적절하게 병합합니다.
문제는 TypeORM이 원시 쿼리 결과의 속성을 적절한 검증 없이 엔터티 객체에 재귀적으로 할당하는 엔터티 하이드레이션/역직렬화 과정에 있습니다.
vulnerable-app.ts - 취약한 TypeORM 애플리케이션 (버전 < 0.2.25)exploit.ts - 개념 증명 익스플로잇patched-app.ts - 패치된 버전 (버전 >= 0.2.25)package.json - 종속성자세한 설정 및 익스플로잇 방법은 SETUP.md를 참조하세요.