Arbitrary Code Execution

Affecting org.springframework.data:spring-data-rest-webmvc artifact, versions [,2.6.7.RELEASE)

Report new vulnerabilities
Do your applications use this vulnerable package? Test your applications

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" }
]

Remediation

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

References

CVSS Score

9.8
high severity
  • Attack Vector
    Network
  • Attack Complexity
    Low
  • Privileges Required
    None
  • User Interaction
    None
  • Scope
    Unchanged
  • Confidentiality
    High
  • Integrity
    High
  • Availability
    High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:F/RL:O/RC:R
Credit
Man Yue Mo
CVE
CVE-2017-8046
CWE
CWE-94
Snyk ID
SNYK-JAVA-ORGSPRINGFRAMEWORKDATA-31577
Disclosed
07 Sep, 2017
Published
16 Apr, 2018