CVE-2025-60542CVE-2025-60542是TypeORM框架中的一个高危SQL注入漏洞,CVSS评分6.5,属于中等严重程度。该漏洞存在于TypeORM 0.3.26之前的版本中,攻击者可以通过精心构造的请求发送给repository.save或repository.update方法来实现SQL注入攻击。漏洞的根本原因在于sqlstring库的调用默认将stringifyObjects参数设置为false,导致对象序列化时未能正确转义特殊字符。TypeORM是一个流行的Node.js ORM框架,广泛用于MySQL、PostgreSQL、SQLite等多种数据库的应用程序中。由于该漏洞影响范围广泛,任何使用受影响版本TypeORM的Web应用都可能面临数据库被攻击的风险。攻击者一旦成功利用此漏洞,可以窃取敏感数据、修改数据库内容,甚至在某些情况下执行系统命令。该漏洞无需认证即可利用,这大大增加了其危害性。建议所有使用TypeORM的项目立即检查版本并采取相应的修复措施。
该SQL注入漏洞的成因是TypeORM在处理数据库查询时,sqlstring库的stringifyObjects参数默认为false。当使用repository.save()或repository.update()方法时,如果传入的对象包含特殊构造的属性值,攻击者可以利用这一特性注入恶意SQL代码。具体来说,攻击者可以在保存或更新实体时,构造类似'; DROP TABLE users;--的字符串内容,由于对象序列化时未进行正确的转义处理,这些恶意内容会被直接拼接到SQL语句中。漏洞影响所有使用TypeORM进行数据库操作的应用,尤其是那些直接接收用户输入并传递给ORM方法的项目。攻击者可以通过API端点、表单提交或其他用户可控的输入渠道触发此漏洞。修复方案已在GitHub PR #11574中提出,并在0.3.26版本中实现,核心修复是将sqlstring调用时的stringifyObjects参数改为true,确保所有对象属性在序列化时都被正确转义。