我们刚刚发布了Hibernate ORM版本 5.6.4.Final
。
向后不兼容的SPI更改
在版本 5.6.2.Final
中,我们不得不对一些SPI进行了一些更改以简化本地编译,但不幸的是,我们忘记确保这些更改是向后兼容的。
在这个错误修复版本中,我们在SPI中的 MultiTableBulkIdStrategy
和 Exporter
中引入了默认方法,以保留与 5.6.1.Final
的向后兼容性。
限制JNDI查找为"java"方案
Hibernate ORM包含其 JndiService
的默认实现,该实现用于内部查找 Datasource
和平台 TransactionManager
的引用。此服务还用于注册其自己的组件,以便其他框架可以查找它们。
在许多运行Hibernate ORM的运行时和应用程序服务器上,将 Datasource
和/或 TransactionManager
绑定到JNDI是一种常见的做法;此功能由JPA规范要求,我们认为这是JNDI的一个合理用例。在审查我们的代码后,与安全团队的讨论得出了相同的结论。
以前,在执行 Datasource
查找时,代码接受任何有效的JNDI查找URL,包括可能不是本地的模式。最初这看起来有些令人担忧,但考虑到这个URL只能由Hibernate配置提供,我们不认为这是一个安全漏洞;然而,作为一个加强改进——以及额外的谨慎——这个版本现在改进了代码,拒绝使用除 java
协议之外的任何URL。
我们认为这并不是真正必要的,也不是紧急的,但它应该使任何其他(可能未来的?)与JNDI相关的漏洞更加难以利用。
如常,如果这破坏了您的应用程序,请通知我们;我们预计没有人会真正使用异构模式来绑定他们的数据源或事务管理器,因此我们预计这不会对任何人造成影响 - 但当涉及JNDI时,保持谨慎总是好的。
获取5.6.4.Final版本,详细变更日志
所有详细信息都可在hibernate.org的专用页面上找到。
5.6.4.Final的完整变更日志。