这是一个概念验证(PoC),演示了 CVE-2020-8158,即 TypeORM 0.2.25 以下版本中存在的一个严重原型污染漏洞。
攻击者可以:
该漏洞存在于 TypeORM 处理数据库查询结果时的对象反序列化过程中。该库在未对 __proto__、constructor 和 prototype 等会导致原型污染的键进行清理的情况下,将用户可控的数据不当地合并到对象中。
问题出在实体水合/反序列化过程中,TypeORM 在没有适当验证的情况下,将原始查询结果中的属性递归地赋值给实体对象。
vulnerable-app.ts - 存在漏洞的 TypeORM 应用程序(版本 < 0.2.25)exploit.ts - 概念验证漏洞利用程序patched-app.ts - 已修复版本(版本 >= 0.2.25)package.json - 依赖项有关详细的设置和漏洞利用说明,请参阅 SETUP.md。