CVE-2018-1257: spring-messaging 的 ReDoS 攻击
描述
Spring Framework 5.0.x 版本(5.0.6 之前)、4.3.x 版本(4.3.17 之前)以及更早的不受支持版本,允许应用程序通过 spring-messaging 模块使用简单的内存中 STOMP 代理公开基于 WebSocket 的 STOMP 端点。恶意用户(或攻击者)可以向代理构造一条消息,从而导致正则表达式拒绝服务攻击。
此漏洞影响满足以下所有要求的应用程序:
- 依赖于 spring-messaging 和 spring-websocket 模块。
- 注册基于 WebSocket 的 STOMP 端点。
- 启用简单的 STOMP 代理。
受影响的 Spring 产品和版本
- Spring Framework 5.0 至 5.0.5
- Spring Framework 4.3 至 4.3.16
- 更早的不受支持版本也受影响
缓解措施
受影响版本的用户应采取以下缓解措施:
- 5.0.x 用户应升级到 5.0.6。
- 4.3.x 用户应升级到 4.3.17。
- 更早版本应升级到受支持的分支。
无需采取其他缓解措施。
请注意,对消息使用 Spring Security 提供的身份验证和授权,可将此漏洞的暴露范围限制在授权用户内。
致谢
此问题由 Recruit Technologies Co., Ltd. 的 Muneaki Nishimura (nishimunea) 发现并负责任地报告。