GitHub Advisoryadvisory · Maven

GHSA-j68f-8h6p-9h5q Struts ParameterInterceptor vulnerability allows remote command execution

CRITICAL Published 2022-04-22 Modified 2023-08-16 Official page ↗
Aliases
CVE-2011-3923
Ecosystem
Maven
Packages
org.apache.struts:struts2-core
Severity
Critical
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-732, CWE-94
Reviewed
2022-11-03

Affected packages

• Maven org.apache.struts:struts2-core: >= 2.0.0, < 2.3.1.2 → fixed in 2.3.1.2

Description

Regular expression in ParametersInterceptor matches `top'foo'` as a valid expression, which OGNL treats as `(top['foo'])(0)` and evaluates the value of 'foo' action parameter as an OGNL expression. This lets malicious users put arbitrary OGNL statements into any String variable exposed by an action and have it evaluated as an OGNL expression and since OGNL statement is in HTTP parameter value attacker can use blacklisted characters (e.g. #) to disable method execution and execute arbitrary methods, bypassing the ParametersInterceptor and OGNL library protections.

Related

Alias · CVE (1)

  • CVE-2011-3923 Apache Struts before 2.3.1.2 allows remote attackers to bypass security protections in the ParameterInterceptor class and execute arbitrary… vulnerability

Weakness · CWE (2)

  • CWE-732 Incorrect Permission Assignment for Critical Resource weakness
  • CWE-94 Improper Control of Generation of Code weakness

References