Arbitrary Code Execution The advisory has been revoked - it doesn't affect any version of package org.springframework.data:spring-data-rest-hal-browser  (opens in a new tab)


Threat Intelligence

Exploit Maturity
Mature
EPSS
49.26% (98th percentile)

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 Learn

Learn about Arbitrary Code Execution vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-JAVA-ORGSPRINGFRAMEWORKDATA-31667
  • published16 Apr 2018
  • disclosed7 Sept 2017
  • creditMan Yue Mo

Introduced: 7 Sep 2017

CVE-2017-8046  (opens in a new tab)
CWE-94  (opens in a new tab)

Amendment

This was deemed not a vulnerability.

Overview

org.springframework.data:spring-data-rest-hal-browser is a module to centralize common resources and configuration for Spring Data Maven builds.

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