CVE-2018-1257: ReDoS Attack with spring-messaging
Spring by Pivotal
Spring Framework, versions 5.0.x prior to 5.0.6 and versions 4.3.x prior to 4.3.17, and older unsupported versions allow applications to expose STOMP over WebSocket endpoints with a simple, in-memory STOMP broker through the spring-messaging module. A malicious user (or attacker) can craft a message to the broker that can lead to a regular expression, denial of service attack.
This vulnerability exposes applications that meet all of the following requirements:
- Depend on spring-messaging and spring-websocket modules.
- Register STOMP over WebSocket endpoints.
- Enable the simple STOMP broker.
Severity is high unless otherwise noted.
- Spring Framework 5.0 to 5.0.5
- Spring Framework 4.3 to 4.3.16
- Older unsupported versions are also affected
Users of affected versions should apply the following mitigation:
- 5.0.x users should upgrade to 5.0.6.
- 4.3.x users should upgrade to 4.3.17.
- Older versions should upgrade to a supported branch.
There are no other mitigation steps necessary.
Note that the use of authentication and authorization for messages, both of which are provided by Spring Security, limits exposure to this vulnerability to authorized users.
This issue was identified and responsibly reported by Muneaki Nishimura (nishimunea) of Recruit Technologies Co., Ltd.
- Example STOMP over WebSocket config where simple broker is enabled.
- Spring Security WebSocket Support documentation.
2018-05-09: Initial vulnerability report published