CVE-2026-40971:RabbitMQ 自动配置使用 SSL Bundle 时会禁用 TLS 主机名验证
中危 | 2026年4月23日 | CVE-2026-40971
描述
当 Spring Boot 的 RabbitMQ 自动配置被设置为使用 SSL Bundle 时,应用在连接 RabbitMQ broker 时不会执行主机名验证。主机名验证是 TLS 连接中的关键校验步骤,用于确认客户端连接的服务端证书是否与目标主机匹配。
如果该校验缺失,客户端虽然仍可能建立加密连接,但无法充分确认对端是否为预期的 RabbitMQ 服务。在特定网络环境下,攻击者可能借助伪造服务端、中间人转发或错误证书配置等方式影响连接安全。对于使用 RabbitMQ 承载业务消息、任务队列、事件通知或异步通信的系统来说,该问题可能削弱应用与消息中间件之间的通信可信度。
该漏洞主要影响使用 Spring Boot 自动配置 RabbitMQ,并通过 SSL Bundle 配置 TLS 连接的应用。如果应用未使用 SSL Bundle,或未通过该自动配置方式连接 RabbitMQ,则不属于该问题的主要影响范围。
受影响的 Spring 产品和版本
受影响产品为 Spring Boot,涉及以下版本:
● 4.0.0 - 4.0.5
● 3.5.0 - 3.5.13
缓解措施
受影响版本的用户应升级到对应的修复版本。升级后,RabbitMQ 自动配置在使用 SSL Bundle 时会按预期执行 TLS 主机名验证,降低连接到非预期 broker 的风险。
无需采取额外缓解措施。建议受影响用户尽快升级至对应修复版本,并在升级后验证 RabbitMQ 连接、消息发布、消息消费、证书配置和应用启动流程是否正常。
处理建议
建议先确认项目是否使用 Spring Boot 4.0.0 至 4.0.5,或 3.5.0 至 3.5.13,并检查 RabbitMQ 连接是否启用了 SSL Bundle。如果命中受影响条件,应尽快升级到 4.0.6 或 3.5.14。
同时,应检查 RabbitMQ 服务端证书配置是否规范,包括证书有效期、证书链、主机名或域名匹配关系。生产环境中,客户端连接地址应与证书中的主机标识保持一致,避免使用临时地址、错误别名或不受控的代理入口。
对于承载关键业务消息的 RabbitMQ 环境,建议同步检查访问链路、网络边界和日志记录,确认是否存在异常连接、证书校验异常、代理转发异常或非预期节点访问记录。升级修复版本后,应结合测试环境和生产灰度流程完成连接验证。