Spring Security 公告

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

中等 | 2016 年 9 月 30 日 | CVE-2016-6652

描述

传递给用户定义的 Spring Data 存储库查询方法的 Sort 实例使用手动声明的 JPQL 查询按原样传递给持久化提供程序,并允许攻击者将任意 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 社区中所有即将举行的活动。

查看全部