CWEweakness

CWE-917 Improper Neutralization of Special Elements used in an Expression Language Statement

Official page ↗
Alternate terms
EL Injection, Expression Language Injection
Abstraction
Base
Structure
Simple
Status
Incomplete
Languages
Java
CWE version
5.0

Description

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.

Common consequences

• Confidentiality: Read Application Data — An attacker could insert an expression that references private data, which is then included in the output. • Integrity: Execute Unauthorized Code or Commands — An attacker could execute arbitrary expressions.

Potential mitigations

• [Architecture and Design] Avoid adding user-controlled data into an expression interpreter when possible. • [Implementation] If user-controlled data must be added to an expression interpreter, one or more of the following should be performed: • Validate that the user input will not evaluate as an expression • Encode the user input in a way that ensures it is not evaluated as an expression • [System Configuration, Operation] The framework or tooling might allow the developer to disable or deactivate the processing of EL expressions, such as setting the isELIgnored attribute for a JSP page to "true".

Detection methods

• Automated Static Analysis: Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)

Observed examples

• CVE-2021-44228: Product does not neutralize ${xyz} style expressions, allowing remote code execution. (log4shell vulnerability in log4j)

Related

Observed example · CVE (1)

  • CVE-2021-44228 Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3, and 2.3.1) JNDI features used in configuration, log… vulnerability

Child of · CWE (2)

  • CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component weakness
  • CWE-77 Improper Neutralization of Special Elements used in a Command weakness

Peer of · CWE (1)

  • CWE-1336 Improper Neutralization of Special Elements Used in a Template Engine weakness

Referenced by CVE · weakness (213)

  • CVE-2026-95664 Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection') vulnerability in… vulnerability
  • CVE-2026-109432 Camunda 7.24.0 before 7.24.14 and 7.23.0 before 7.23.17 contains an expression injection vulnerability where AdhocQueryValidator.validate()… vulnerability
  • CVE-2026-83531 Improper Control of Generation of Code ('Code Injection'), Improper Neutralization of Special Elements used in an Expression Language… vulnerability
  • CVE-2026-108334 A flaw was found in the internal WebAssembly (WASM) shim used by the Kuadrant operator. vulnerability
  • CVE-2026-104711 Improper neutralization of special elements used in an expression language statement ('Expression Language Injection') vulnerability in… vulnerability
  • CVE-2026-87830 In the StAX streaming WS-SecurityPolicy validator, certain relative or unsupported XPath expressions can be converted into paths that never… vulnerability
  • CVE-2026-91145 Activiti through 7.1.0.M6 fails to validate hash-brace deferred expressions in process variables, allowing attackers to bypass expression… vulnerability
  • CVE-2026-52439 An issue in xiandafu beetl 3.20.2 allows a remote attacker to execute arbitrary code via the type.new function and the property reflection… vulnerability
  • CVE-2026-65591 n8n contains a sanitizer bypass vulnerability in the legacy expression evaluator's computed-member handler. vulnerability
  • CVE-2026-57281 Jenkins Script Security Plugin 1402.v94c9ce464861 and earlier does not reject Groovy AST transformation annotations carrying an extensions… vulnerability
  • CVE-2026-11561 Improper neutralization of special elements used in an expression language statement ('expression language injection') vulnerability in… vulnerability
  • CVE-2026-40985 Applications that configure the WebFlowELExpressionParser are vulnerable to the use of malicious Unified EL expressions. vulnerability
  • CVE-2026-41717 Spring Data MongoDB contains a SpEL (Spring Expression Language) expression injection vulnerability. vulnerability
  • CVE-2026-41719 A SpEL Injection vulnerability exists in the Spring Data KeyValue if unsanitized user input is passed as Sort into a repository query… vulnerability
  • CVE-2026-41729 Spring Data REST is vulnerable to SpEL expression injection through map-typed properties when processing JSON Patch… vulnerability
  • CVE-2026-8888 Version 3.0.7 of the Securly Chrome Extension downloads config.json over HTTP and compiles server-provided patterns as JavaScript regular… vulnerability
  • CVE-2026-44209 Banks generates meaningful LLM prompts using a template language that makes sense. vulnerability
  • CVE-2026-2586 An authenticated Remote Code Execution (RCE) vulnerability was identified in GlassFish's Administration Console. vulnerability
  • CVE-2026-2587 A critical Remote Code Execution (RCE) vulnerability was identified in the server-side template rendering mechanism used by the Glassfish… vulnerability
  • CVE-2026-31380 Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection') vulnerability in… vulnerability
  • CVE-2026-26462 Offline Hospital Management System 5.3.0 allows remote code execution due to an improper Electron renderer configuration. vulnerability
  • CVE-2026-8759 A vulnerability was identified in xiandafu beetl up to 3.20.2. vulnerability
  • CVE-2026-41901 Thymeleaf is a server-side Java template engine for web and standalone environments. vulnerability
  • CVE-2026-41705 Spring AI's MilvusVectorStore#doDelete(List) implementation is vulnerable to filter-expression injection via unsanitized document IDs. vulnerability
  • CVE-2026-41883 OmniFaces is a utility library for Faces. vulnerability
  • CVE-2026-28201 An improper input validation, together with an overly permissive default CORS configuration in Open Notebook v1.8.1 allows remote attacker… vulnerability
  • CVE-2026-42811 In plain terms, Apache Polaris is supposed to issue short-lived GCS credentials that only work for one table's files, but a crafted… vulnerability
  • CVE-2026-40897 Math.js is an extensive math library for JavaScript and Node.js. vulnerability
  • CVE-2026-40477 Thymeleaf is a server-side Java template engine for web and standalone environments. vulnerability
  • CVE-2026-40478 Thymeleaf is a server-side Java template engine for web and standalone environments. vulnerability
Show all 213 ›

Referenced by OWASP · mapped cwe (2)