I would like to acknowledge an RCE vulnerability in the Spring Framework that does not have a published CVE report yet. The issue was first reported to VMware late on Tuesday evening, close to Midnight, GMT time by codeplutos, meizjm3i of AntGroup FG. On Wednesday we worked through investigation, analysis, identifying a fix, testing, while aiming for emergency releases on Thursday. In the mean time also on Wednesday, the vulnerability was leaked in full detail online, which is why we are providing this update ahead of the releases and the CVE report.
The vulnerability impacts Spring MVC and Spring WebFlux applications running on JDK 9+. The specific exploit requires the application to be packaged as a WAR and deployed to Apache Tomcat. This does mean the exploit does not work for Spring Boot with embedded Tomcat. However, the nature of the vulnerability is more general, and there may be other ways to exploit it.
The release process for Spring Framework 5.3.18 and 5.2.20 is currently in progress, to be followed up with corresponding Spring Boot releases, immediately after. We expect those to become available available in the next 1-2 hours and will provide further updates.
Suggested Workarounds
The leaked reports recommend setting disallowedFields
on WebDataBinder
through an @ControllerAdvice
:
@ControllerAdvice
@Order(Ordered.LOWEST_PRECEDENCE)
public class BinderControllerAdvice {
@InitBinder