{"id":"CVE-2024-53677","published":"2024-12-11T15:35:43Z","modified":"2025-01-03T12:04:30Z","title":"Apache Struts: Mixing setters for uploaded files and normal fields can allow bypass file upload checks","vendor":"Apache Software Foundation","product":"Apache Struts","tier":"core","eol":null,"affectedVersions":[{"vendor":"Apache Software Foundation","product":"Apache Struts","versions":[">= 2.0.0, < 6.4.0"]}],"description":{"text":"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.\n\nThis issue affects Apache Struts: from 2.0.0 before 6.4.0.\n\nUsers are recommended to upgrade to version 6.4.0 at least and migrate to the new  file upload mechanism https://struts.apache.org/core-developers/file-upload . If you are not using an old file upload logic based on FileuploadInterceptor your application is safe.\n\nYou can find more details in  https://cwiki.apache.org/confluence/display/WW/S2-067","provenance":"source","from":"CVE.org"},"summary":{"text":"The flaw is in the file upload logic of Apache Struts, the Apache Software Foundation's web application framework, where mixing setters for uploaded files and normal form fields allows file upload checks to be bypassed. An attacker who can manipulate the file upload parameters over the network, without authentication or user interaction, can use path traversal to place a malicious file and, under some circumstances, achieve remote code execution; this applies to Struts 2.0.0 before 6.4.0 when the older FileUploadInterceptor-based upload mechanism is in use.","provenance":"ai","model":"claude-haiku-5-5","generatedAt":"2026-10-29T07:11:34Z"},"cvss":{"score":9.5,"severity":"CRITICAL","version":"4.0","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/S:N/AU:Y/R:A/V:C/RE:L/U:Red","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.72367,"percentile":0.99438,"date":"2026-10-31","provenance":"source"},"kev":null,"vulncheckKev":{"dateAdded":"2024-12-15","exploitedFirstSeen":"2024-12-15","ransomware":false,"evidence":[{"url":"https://isc.sans.edu/diary/Exploit+attempts+inspired+by+recent+Struts2+File+Upload+Vulnerability+CVE202453677+CVE202350164/31520","date":"2024-12-15"},{"url":"https://attackerkb.com/topics/YfjepZ70DS/cve-2024-53677","date":"2024-12-18"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2024-12-20&host_type=src&vulnerability=cve-2024-53677","date":"2024-12-20"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-26&host_type=src&vulnerability=cve-2024-53677","date":"2026-09-26"}],"evidenceTotal":4,"provenance":"source"},"exploited":true,"otx":null,"cwes":[{"id":"CWE-434","name":"Unrestricted Upload of File with Dangerous Type"}],"references":[{"url":"https://cwiki.apache.org/confluence/display/WW/S2-067","tags":["vendor-advisory"]},{"url":"https://security.netapp.com/advisory/ntap-20250103-0005/","tags":[]}],"techniques":[],"reports":[],"affected":[{"ecosystem":"Maven","package":"org.apache.struts:struts2-core","vulnerableRanges":["<6.4.0"],"patched":["6.4.0"],"from":["GHSA-43mq-6xmg-29vm"],"provenance":"source"}],"advisories":[{"id":"GHSA-43mq-6xmg-29vm","url":"https://github.com/advisories/GHSA-43mq-6xmg-29vm","severity":"CRITICAL","ecosystem":"Maven","package":"org.apache.struts:struts2-core","vulnerableRanges":["<6.4.0"],"patched":["6.4.0"],"provenance":"source","from":"GHSA"}],"euvd":{"id":"EUVD-2024-3418","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2024-3418","exploited":false,"exploitedSince":null,"provenance":"source"},"exploits":[],"exploitSources":{"pocGithub":{"count":15,"skipped":3,"earliest":"2024-12-12","earliestUrl":"https://github.com/cloudwafs/s2-067-CVE-2024-53677","repos":[{"name":"TAM-K592/CVE-2024-53677-S2-067","url":"https://github.com/TAM-K592/CVE-2024-53677-S2-067","stars":96,"created":"2024-12-13"},{"name":"EQSTLab/CVE-2024-53677","url":"https://github.com/EQSTLab/CVE-2024-53677","stars":17,"created":"2025-01-03"},{"name":"cloudwafs/s2-067-CVE-2024-53677","url":"https://github.com/cloudwafs/s2-067-CVE-2024-53677","stars":9,"created":"2024-12-12"},{"name":"yangyanglo/CVE-2024-53677","url":"https://github.com/yangyanglo/CVE-2024-53677","stars":3,"created":"2024-12-17"},{"name":"c4oocO/CVE-2024-53677-Docker","url":"https://github.com/c4oocO/CVE-2024-53677-Docker","stars":3,"created":"2024-12-17"}]},"first":{"date":"2024-12-12","source":"PoC-in-GitHub","url":"https://github.com/cloudwafs/s2-067-CVE-2024-53677"},"provenance":"source"},"exploitRefs":[],"flow":[],"timeline":[{"date":"2024-12-11","kind":"published","label":"Published (CVE.org)","url":"https://www.cve.org/CVERecord?id=CVE-2024-53677","provenance":"source"},{"date":"2024-12-12","kind":"exploit-public","label":"First public exploit: PoC-in-GitHub","url":"https://github.com/cloudwafs/s2-067-CVE-2024-53677","provenance":"source"},{"date":"2024-12-15","kind":"exploited-reported","label":"Exploitation first reported (VulnCheck KEV evidence)","url":"https://isc.sans.edu/diary/Exploit+attempts+inspired+by+recent+Struts2+File+Upload+Vulnerability+CVE202453677+CVE202350164/31520","provenance":"source"}],"speed":{"daysToPublicExploit":1,"firstExploitFrom":"PoC-in-GitHub","daysToKev":null},"priority":{"score":66.5,"factors":[{"name":"In a KEV catalog","points":35.0,"detail":"listed in VulnCheck KEV"},{"name":"Recent KEV listing","points":0.0,"detail":"added 686 days ago"},{"name":"Known ransomware use","points":0.0,"detail":"not known"},{"name":"EPSS percentile","points":19.89,"detail":"percentile 0.9944"},{"name":"Named in threat reports","points":0.0,"detail":"0 reports"},{"name":"Public exploit code","points":5.0,"detail":"15 PoC-in-GitHub repos"},{"name":"Mentioned in OTX pulses","points":0.0,"detail":"0 pulses"},{"name":"CVSS severity","points":6.65,"detail":"base score 9.5"},{"name":"End-of-life product","points":0.0,"detail":"supported or unknown"}]},"lineage":{"packageHistory":[{"cve":"CVE-2023-34396","published":"2023-06-14","fixed":"6.1.2.1","kev":false},{"cve":"CVE-2023-41835","published":"2023-12-05","fixed":"6.3.0.1","kev":false},{"cve":"CVE-2023-50164","published":"2023-12-07","fixed":"6.3.0.2","kev":false,"link":{"from":"CVE-2023-50164","to":"CVE-2024-53677","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Maven:org.apache.struts:struts2-core","fromFixed":"6.3.0.2","toFixed":"6.4.0","daysApart":370}]}},{"cve":"CVE-2024-53677","published":"2024-12-11","fixed":"6.4.0","kev":false},{"cve":"CVE-2025-64775","published":"2025-12-01","fixed":"7.1.1","kev":false,"link":{"from":"CVE-2024-53677","to":"CVE-2025-64775","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Maven:org.apache.struts:struts2-core","fromFixed":"6.4.0","toFixed":"6.8.0","daysApart":355}]}},{"cve":"CVE-2025-66675","published":"2025-12-10","fixed":"7.1.1","kev":false,"link":{"from":"CVE-2024-53677","to":"CVE-2025-66675","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Maven:org.apache.struts:struts2-core","fromFixed":"6.4.0","toFixed":"6.8.0","daysApart":364}]}}],"package":"Maven:org.apache.struts:struts2-core"}}