Arbitrary Code Execution Affecting org.springframework.data:spring-data-rest-webmvc package, versions [,2.6.7.RELEASE)


0.0
critical

Snyk CVSS

    Attack Complexity Low
    Confidentiality High
    Integrity High
    Availability High

    Threat Intelligence

    Exploit Maturity Mature
    EPSS 49.26% (98th percentile)
Expand this section
NVD
9.8 critical

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk ID SNYK-JAVA-ORGSPRINGFRAMEWORKDATA-31577
  • published 16 Apr 2018
  • disclosed 7 Sep 2017
  • credit Man Yue Mo

How to fix?

Upgrade org.springframework.data:spring-data-rest-webmvc to version 2.6.7.RELEASE or higher.

Overview

org.springframework.data:spring-data-rest-webmvc is a maven plugin for Spring Data REST - WebMVC.

Affected versions of this package are vulnerable to Arbitrary Code Execution. It is caused due to the way Spring uses it's own expression language in the Data REST component.

The Spring Expression Language (SpEL) is an expression language (similar to OGNL, MVEL, and JBoss EL) which serves as the foundation for expression evaluation within the Spring portfolio. It supports querying and manipulating an object graph at runtime.

User input was not validated upon sending a PATCH request with a path parameter to spring-data-rest servers. An attacker may sumit a specially crafted PATCH request with a path containing SpEL syntax, and the Spring REST server, would in turn run these expressions.

An example for an invalid PATCH request:

[
    {"op":"replace", "path":"<Malicious SpEL code>", "value": "bar" }
]