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

严重 | 2018 年 9 月 11 日 | CVE-2018-11087

描述

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

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

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

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

TLS 通常保护用户和系统免受 MITM 攻击,但如果客户端接受来自其他受信任主机的证书,则无法实现。

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 库创建连接工厂,请参阅其 javadoc 了解 enableHostnameValidation() 方法。

致谢

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

历史记录

2018-09-11:发布初始漏洞报告。

抢先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看全部