{"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.99436,"date":"2026-10-29","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":{"pulseCount":14,"pulses":[{"name":"Actualización SAP Security Patch Day - July 2025 -  11/07/2025","url":"https://otx.alienvault.com/pulse/68714358153d83f60eccad69","created":"2025-07-11"},{"name":"New Chaos RAT Variants Threaten Windows and Linux Systems with Stealthy Data Theft","url":"https://otx.alienvault.com/pulse/6843300336b121603e3cffad","created":"2025-06-06"},{"name":"Console Chaos: A Campaign Targeting Publicly Exposed Management Interfaces on Fortinet FortiGate Firewalls - Arctic Wolf","url":"https://otx.alienvault.com/pulse/6787ac28a5c78edb850959c8","created":"2025-01-15"},{"name":"New Zero-Day Exploit Targets Fortinet Firewalls in Latest Cyber Attack","url":"https://otx.alienvault.com/pulse/6786b107e7a0b045026f39a3","created":"2025-01-14"},{"name":"Console Chaos: A Campaign Targeting Publicly Exposed Management Interfaces on Fortinet FortiGate Firewalls - Arctic Wolf","url":"https://otx.alienvault.com/pulse/678629c7969e01fc423c5d44","created":"2025-01-14"},{"name":"Threat Intel Report - W52-2024","url":"https://otx.alienvault.com/pulse/6774e823196d078c848ed0e7","created":"2025-01-01"},{"name":"APT29 Exploits Rogue RDP in October 2024 Hacking Campaign","url":"https://otx.alienvault.com/pulse/676652f7b1080740c101e9e9","created":"2024-12-21"},{"name":"APT29 Exploits Rogue RDP in October 2024 Hacking Campaign","url":"https://otx.alienvault.com/pulse/676652f7393d00df56cffdc0","created":"2024-12-21"},{"name":"APT29 Exploits Rogue RDP in October 2024 Hacking Campaign","url":"https://otx.alienvault.com/pulse/676652f7a55e1301c9233e6c","created":"2024-12-21"},{"name":"APT29 Exploits Rogue RDP in October 2024 Hacking Campaign","url":"https://otx.alienvault.com/pulse/676652f78bbff8f3a7dcb4c3","created":"2024-12-21"}],"provenance":"machine"},"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":69.2,"factors":[{"name":"In a KEV catalog","points":35.0,"detail":"listed in VulnCheck KEV"},{"name":"Recent KEV listing","points":0.0,"detail":"added 684 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":2.67,"detail":"14 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"}}