CVE Vulnerabilities

CVE-2020-9297

Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection')

Published: Jul 14, 2020 | Modified: Jul 21, 2021
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.5 HIGH
AV:N/AC:L/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
Ubuntu

Netflix Titus, all versions prior to version v0.1.1-rc.274, uses Java Bean Validation (JSR 380) custom constraint validators. When building custom constraint violation error messages, different types of interpolation are supported, including Java EL expressions. If an attacker can inject arbitrary data in the error message template being passed to ConstraintValidatorContext.buildConstraintViolationWithTemplate() argument, they will be able to run arbitrary Java code.

Weakness

The product constructs all or part of an expression language (EL) statement in a framework such as a Java Server Page (JSP) using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended EL statement before it is executed.

Affected Software

Name Vendor Start Version End Version
Titus Netflix * 0.1.0 (including)
Titus Netflix 0.1.1 (including) 0.1.1 (including)
Titus Netflix 0.1.1-rc244 (including) 0.1.1-rc244 (including)
Titus Netflix 0.1.1-rc260 (including) 0.1.1-rc260 (including)
Titus Netflix 0.1.1-rc261 (including) 0.1.1-rc261 (including)
Titus Netflix 0.1.1-rc262 (including) 0.1.1-rc262 (including)
Titus Netflix 0.1.1-rc263 (including) 0.1.1-rc263 (including)
Titus Netflix 0.1.1-rc264 (including) 0.1.1-rc264 (including)
Titus Netflix 0.1.1-rc265 (including) 0.1.1-rc265 (including)
Titus Netflix 0.1.1-rc266 (including) 0.1.1-rc266 (including)
Titus Netflix 0.1.1-rc267 (including) 0.1.1-rc267 (including)
Titus Netflix 0.1.1-rc268 (including) 0.1.1-rc268 (including)
Titus Netflix 0.1.1-rc269 (including) 0.1.1-rc269 (including)
Titus Netflix 0.1.1-rc270 (including) 0.1.1-rc270 (including)
Titus Netflix 0.1.1-rc271 (including) 0.1.1-rc271 (including)
Titus Netflix 0.1.1-rc272 (including) 0.1.1-rc272 (including)
Titus Netflix 0.1.1-rc273 (including) 0.1.1-rc273 (including)

Potential Mitigations

  • If user-controlled data must be added to an expression interpreter, one or more of the following should be performed:

References