CVE-2018-1270: Remote Code Execution with spring-messaging
Description
Spring Framework, versions 5.0.x prior to 5.0.5 and versions 4.3.x prior to 4.3.16, 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 remote code execution attack.
Affected Spring Products and Versions
- Spring Framework 5.0 to 5.0.4
- Spring Framework 4.3 to 4.3.15
- Older unsupported versions are also affected
Mitigation
Users of affected versions should apply the following mitigation:
- 5.0.x users should upgrade to 5.0.5
- 4.3.x users should upgrade to 4.3.16
- 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.
Credit
This issue was identified and responsibly reported by Alvaro Muñoz (@pwntester), Micro Focus Fortify.
References
- Example <a href='https://docs.cupchino.shop/spring/docs/current/spring-framework-reference/web.html#websocket-stomp-enable'>STOMP over WebSocket config</a> where simple broker is enabled.
- <a href='https://docs.cupchino.shop/spring-security/site/docs/5.0.3.RELEASE/reference/htmlsingle/#websocket'>Spring…