CVE-2018-11087:RabbitMQ (Spring-AMQP) 主机名验证

危急 | 2018年9月11日 | CVE-2018-11087

描述

spring-amqp 1.x 版本(1.7.10 之前)和 2.x 版本(2.0.6 之前)存在中间人攻击漏洞。

Spring RabbitMQ Java 客户端未执行主机名验证。

这意味着,只要 SSL 证书受信任,就会盲目接受其他主机的证书。

要利用此漏洞,攻击者必须在运行 Spring RabbitMQ Java 客户端的 Java 应用程序与正在连接的 RabbitMQ 服务器之间执行中间人(MITM)攻击。

TLS 通常可以保护用户和系统免受中间人攻击,但如果客户端接受了其他受信任主机的证书,TLS 将无法提供保护。

Spring AMQP 使用 RabbitMQ amqp-client Java 库与 RabbitMQ 进行通信。

它使用 RabbitConnectionFactoryBean 来创建/配置连接工厂。

受影响的 Spring 产品和版本

  • Spring-AMQP 版本(1.7.10 和 2.0.6 之前)
  • RabbitMQ amqp-client 版本(4.8.0 和 5.4.0 之前)

缓解措施

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

  • 升级到 1.7.10.RELEASE 或 2.0.6.RELEASE,并将 enableHostnameValidation 属性设置为 true。分别将传递的 amqp-client 版本覆盖为至少 4.8.0 和 5.4.0。
  • 即将发布的 2.1.0.RELEASE 版本将默认将该属性设置为 true。
  • 如果您直接使用 amqp-client 库来创建连接工厂,请参考其 javadocs 中的 enableHostnameValidation() 方法。

致谢

此问题由瑞士 Alphabot Security 的 Peter Stöckli 发现并负责任地报告。

历史

2018-09-11:首次发布漏洞报告。

领先一步

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

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

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

查看所有