Struts - CVE-2024-53677 / S2-067
File upload logic in Apache Struts is flawed. An attacker can manipulate file upload params to enable paths traversal and under some circumstances this can lead to uploading a malicious file which can be used to perform Remote Code Execution.
Vulnerable versions:
Struts 2.0.0 - Struts 2.3.37 (End-of-Life),
Struts 2.5.0 - Struts 2.5.33, and
Struts 6.0.0 - Struts 6.3.0.2
References:
Proof-of-Concept
Setup test environment
» git clone git@github.com:0xPThree/struts_cve-2024-53677.git
» cd struts_cve-2024-53677
» sudo docker build --ulimit nofile=122880:122880 -m 3G -t struts-6.3.0.1 .
» sudo docker run -p 8081:8080 --ulimit nofile=122880:122880 -m 3G --rm -it --name struts-6.3.0.1 struts-6.3.0.1» curl http://127.0.0.1:8081/upload.action
<html>
<head>
<title>File upload</title>
</head>
<body>
<h1>Apache Struts 6.3.0.1</h1>
<p>Welcome to Apache Struts 6.3.0.1 lab. This application is vulnerable to CVE-2023-50164 and CVE-2024-53677.</p>
<form id="upload" name="upload" action="/upload.action;jsessionid=196954CE343A603EC7EE26FFF611D302" method="post" enctype="multipart/form-data">
<table class="wwFormTable">
<tr>
<td class="tdLabel"></td>
<td
class="tdInput"
><input type="file" name="upload" id="upload_upload"/></td>
</tr>
<tr>
<td colspan="2">
<div class="formButton"><input type="submit" value="Submit" id="upload_0"/></div>
</td>
</tr>
</table>
</form>
</body>
</html>Exploit
Check script from: https://github.com/TAM-K592/CVE-2024-53677-S2-067/tree/ALOK
Last updated
Was this helpful?