CVE-2016-6652 Spring Data JPA 盲注 SQL 注入漏洞

MEDIUM | 2016 年 9 月 30 日 | CVE-2016-6652

描述

通过手动声明的 JPQL 查询传递给用户定义的 Spring Data 存储库查询方法的Sort实例会按原样传递给持久性提供程序,并允许攻击者将任意 JPQL 注入到ORDER BY子句中,他们可能会使用这些子句,根据查询结果的元素顺序的变化推断关于未暴露字段的结论,具体取决于注入的 JPQL。

如果 Sort 实例是从不可信的来源创建的,例如 Web 请求参数,则尤其如此。

受影响的 Spring 产品和版本

  • Spring Data JPA 1.10.2, 1.9.4
  • 其他不受支持的版本也受到影响

缓解措施

受影响版本的用户应采取以下缓解措施

  • 建议用户升级到 Spring Data JPA 1.10.4 (Hopper SR4) 或 1.9.6 (Gosling SR6) 版本。 这些版本包含对传递到数据访问层的Sort实例的清理,并且只允许引用域对象字段和 JPQL 中使用的别名,以支持查询方法。
  • 如果用户仍然需要将复杂的排序表达式传递到数据访问层,他们可以使用新引入的JpaSort.unsafe(…)来重新实例化旧的行为。

贡献

此漏洞由来自 Silverskin Information Security 的 Niklas Särökaari 以及来自 Solita 的 Joona Immonen、Arto Santala、Antti Virtanen、Michael Holopainen 和 Antti Ahola 负责任地报告。

参考

历史

2016-9 月-30: 发布初始漏洞报告

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将到来的活动

查看 Spring 社区中所有即将举行的活动。

查看全部