CVE-2020-5397: CSRF Attack via CORS Preflight Requests with Spring MVC or Spring WebFlux

MEDIUM | JANUARY 16, 2020 | CVE-2020-5397

Description

Spring Framework, versions 5.2.x prior to 5.2.3 are vulnerable to CSRF attacks through CORS preflight requests that target Spring MVC (spring-webmvc module) or Spring WebFlux (spring-webflux module) endpoints.

Only non-authenticated endpoints are vulnerable because preflight requests should not include credentials and therefore requests should fail authentication. However a notable exception to this are Chrome based browsers when using client certificates for authentication since Chrome sends TLS client certificates in CORS preflight requests in violation of spec requirements. 

No HTTP body can be sent or received as a result of this attack.

Affected Spring Products and Versions

  • Spring Framework
    • 5.2.0 to 5.2.2

Mitigation

Users of affected versions should apply the below mitigation.  5.2.x users should upgrade to 5.2.3.  There are no other mitigation steps necessary. Use of Spring Security with URL based security and CORS support enabled prevents exposure to this vulnerability. Releases that have fixed this issue include:

  • Spring Framework
    • 5.2.3

Credit

This issue was identified and responsibly reported by Eric Zimanyi from Google.

References

History

  • 2020-01-16: Initial vulnerability report published.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all