CVE ID: CVE-2022-33171
产品: TypeORM
受影响版本: < 0.3.0
漏洞类型: SQL 注入
披露日期: 2022年6月28日
在 0.3.0 版本之前的 TypeORM 中,findOne(id) 和 findOneOrFail(id) 函数可以接收字符串或 FindOneOptions 对象。当该函数的输入是用户控制的已解析 JSON 对象时,提供精心构造的 FindOneOptions 而非 id 字符串会导致 SQL 注入。
该漏洞存在的原因如下:
findOne() 函数接受灵活输入类型(字符串或 FindOneOptions 对象)TypeORM 维护者表示,根本原因在于应用程序侧的输入验证不足,而非库本身。然而,该函数被明确设计为接受用户输入,因此认为库应安全处理这一问题的论点是有道理的。
升级到 TypeORM 0.3.0 或更高版本,该版本包含对此漏洞的修复。