CVE-2017-5638criticalunder attackransomwareCWE-755

CVE-2017-5638: critical vulnerability in Apache Struts

Published · Updated

E-mail alert when it lands in KEV, gets a public PoC or its score goes up.

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 9.8epss 100%
from disclosure to weaponsame day
Published on NVDMar 11
1st PoCMar 7
metasploitMar 7
CISA KEV+1698d
What the vendors declare (VEX)

Official vendor statements in CSAF/VEX format: whether their product is affected, already fixed, or ruled out — and why. These are the vendor's assertions, not Vexday's judgment.

Not affected
1 product — because the vulnerable code is not present in the product
Red Hat JBoss Fuse Service Works 6
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

In short

Apache Struts 2 has a flaw in how it handles file uploads that lets attackers run malicious commands on a server by sending specially crafted HTTP headers. This is a critical vulnerability that was actively exploited in real attacks.

Technical detail

The Jakarta Multipart parser in Apache Struts 2 (versions 2.3.x before 2.3.32 and 2.5.x before 2.5.10.1) improperly handles exceptions during multipart form data processing, allowing remote code execution through OGNL injection via malicious Content-Type, Content-Disposition, or Content-Length headers. The vulnerability requires only network access to an affected application endpoint and no authentication, resulting in arbitrary command execution on the server.

Summary generated and translated by AI from the official description.

The full analysis of this CVE is available in Portuguese →

The Jakarta Multipart parser in Apache Struts 2 2.3.x before 2.3.32 and 2.5.x before 2.5.10.1 has incorrect exception handling and error-message generation during file-upload attempts, which allows remote attackers to execute arbitrary commands via a crafted Content-Type, Content-Disposition, or Content-Length HTTP header, as exploited in the wild in March 2017 with a Content-Type header containing a #cmd= string.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
public PoCs found — 155✓ VexDay Proof
exploitdb✓ VexDay Proofwww.exploit-db.com/exploits/41614exploitdb✓ VexDay Proofwww.exploit-db.com/exploits/41570githubgithub.com/mazen160/struts-pwn★ 443githubgithub.com/Flyteas/Struts2-045-Exp★ 61githubgithub.com/immunio/apache-struts2-CVE-2017-5638★ 34githubgithub.com/jas502n/S2-045-EXP-POC-TOOLS★ 25githubgithub.com/PolarisLab/S2-045★ 23githubgithub.com/xsscx/cve-2017-5638★ 22githubgithub.com/jas502n/st2-046-poc★ 21githubgithub.com/ret2jazzy/Struts-Apache-ExploitPack★ 16githubgithub.com/win3zz/CVE-2017-5638★ 16githubgithub.com/jrrdev/cve-2017-5638★ 14githubgithub.com/sUbc0ol/Apache-Struts2-RCE-Exploit-v2-CVE-2017-5638★ 13githubgithub.com/Iletee/struts2-rce★ 11githubgithub.com/tahmed11/strutsy★ 10githubgithub.com/initconf/CVE-2017-5638_struts★ 8githubgithub.com/payatu/CVE-2017-5638★ 8githubgithub.com/0x00-0x00/CVE-2017-5638★ 6githubgithub.com/R4v3nBl4ck/Apache-Struts-2-CVE-2017-5638-Exploit-★ 3githubgithub.com/falcon-lnhg/StrutsShell★ 3githubgithub.com/Nithylesh/web-application-firewall-★ 3githubgithub.com/iampetru/PoC-CVE-2017-5638★ 3githubgithub.com/opt9/Strutscli★ 2githubgithub.com/Greynad/struts2-jakarta-inject★ 2githubgithub.com/andypitcher/check_struts★ 2githubgithub.com/aljazceru/CVE-2017-5638-Apache-Struts2★ 2githubgithub.com/lolwaleet/ExpStruts★ 2githubgithub.com/Kouf320/docker-lab-cve-2017-5638-cve-2021-41773★ 2githubgithub.com/opt9/Strutshock★ 2githubgithub.com/kloutkake/CVE-2017-5638-PoC★ 2githubgithub.com/sighup1/cybersecurity-struts2★ 1githubgithub.com/m3ssap0/struts2_cve-2017-5638★ 1githubgithub.com/jptr218/struts_hack★ 1githubgithub.com/GU-007/struts2-tool★ 1githubgithub.com/un4ckn0wl3z/CVE-2017-5638★ 1githubgithub.com/haxerr9/CVE-2017-5638★ 1githubgithub.com/ludy-dev/XworkStruts-RCE★ 1githubgithub.com/jpacora/Struts2Shell★ 1githubgithub.com/oktavianto/CVE-2017-5638-Apache-Struts2★ 1githubgithub.com/Xernary/CVE-2017-5638-POC★ 1githubgithub.com/Masahiro-Yamada/OgnlContentTypeRejectorValve★ 1githubgithub.com/jongmartinez/CVE-2017-5638★ 1githubgithub.com/riyazwalikar/struts-rce-cve-2017-5638★ 1githubgithub.com/ACharaf06/CVE-2017-5638-Attack-and-Defense★ 1githubgithub.com/ggolawski/struts-rce★ 1githubgithub.com/KarzsGHR/S2-046_S2-045_POC★ 1githubgithub.com/random-robbie/CVE-2017-5638★ 0githubgithub.com/eeehit/CVE-2017-5638★ 0githubgithub.com/NAIRBS/SC3010-Grp-33★ 0githubgithub.com/bongbongco/cve-2017-5638★ 0githubgithub.com/SpiderMate/Stutsfi★ 0githubgithub.com/injcristianrojas/cve-2017-5638★ 0githubgithub.com/QHxDr-dz/CVE-2017-5638★ 0githubgithub.com/Majaktech/apache-struts-cve-2017-5638-project★ 0githubgithub.com/invisiblethreat/strutser★ 0githubgithub.com/sonatype-workshops/struts2-rce★ 0githubgithub.com/mcassano/cve-2017-5638★ 0githubgithub.com/Aasron/Struts2-045-Exp★ 0githubgithub.com/smancke/CVE-2017-5638★ 0githubgithub.com/leandrocamposcardoso/CVE-2017-5638-Mass-Exploit★ 0githubgithub.com/timothyjxhn/DeliberatelyVulnerableWebApp★ 0githubgithub.com/toothbrushsoapflannelbiscuits/cve-2017-5638★ 0githubgithub.com/gsfish/S2-Reaper★ 0githubgithub.com/sUbc0ol/Apache-Struts-CVE-2017-5638-RCE-Mass-Scanner★ 0githubgithub.com/donaldashdown/Common-Vulnerability-and-Exploit★ 0githubgithub.com/kaylertee/Computer-Security-Equifax-2017★ 0githubgithub.com/AIPEACS/SC3010-Computer-Security★ 0githubgithub.com/s1kh/Vulnerability-Analysis-and-Mitigation★ 0githubgithub.com/FozilCV/Apache-Struts2-CVE-2017-5638★ 0githubgithub.com/Dungsocool/CVE-2017-5638★ 0githubgithub.com/homjxi0e/CVE-2017-5638★ 0githubgithub.com/Xhendos/CVE-2017-5638★ 0githubgithub.com/TamiiLambrado/Apache-Struts-CVE-2017-5638-RCE-Mass-Scanner★ 0githubgithub.com/c002/Apache-Struts★ 0githubgithub.com/cafnet/apache-struts-v2-CVE-2017-5638★ 0githubgithub.com/Badbird3/CVE-2017-5638★ 0githubgithub.com/testpilot031/vulnerability_struts-2.3.31★ 0githubgithub.com/readloud/CVE-2017-5638★ 0githubgithub.com/FredBrave/CVE-2017-5638-ApacheStruts2.3.5★ 0githubgithub.com/joidiego/Detection-struts-cve-2017-5638-detector★ 0githubgithub.com/MuhammadAbdullah192/CVE-2017-5638-Remote-Code-Execution-Apache-Struts2-EXPLOITATION★ 0githubgithub.com/btamburi/strutszeiro★ 0githubgithub.com/sjitech/test_struts2_vulnerability_CVE-2017-5638★ 0githubgithub.com/jrrombaldo/CVE-2017-5638★ 0githubgithub.com/colorblindpentester/CVE-2017-5638★ 0githubgithub.com/Tankirat/CVE-2017-5638★ 0githubgithub.com/mfdev-solution/Exploit-CVE-2017-5638★ 0githubgithub.com/soufiane-benchahyd/vulhub-struts2★ 0githubgithub.com/mritunjay-k/CVE-2017-5638★ 0githubgithub.com/Piyush-Tiwatne/struts-patch-gap-auditor★ 0githubgithub.com/Ethel087/CVE-2017-5638-Apache-Struts-Analysis★ 0vulncheckvulncheck.com/xdb/ab1e48aab793unverifiedvulncheckvulncheck.com/xdb/5a31e2b88d8bunverifiedcve_referenceexploit-db.com/exploits/41570unverifiedvulncheckvulncheck.com/xdb/b0439ebbc0c0unverifiedvulncheckvulncheck.com/xdb/646a3c0fe320unverifiedvulncheckvulncheck.com/xdb/961d20815cd2unverifiedvulncheckvulncheck.com/xdb/1aeac5628880unverifiedvulncheckvulncheck.com/xdb/5de84d7d0047unverifiedvulncheckvulncheck.com/xdb/fb98eda84f5dunverifiedvulncheckvulncheck.com/xdb/cf28f48b8a4bunverifiedvulncheckvulncheck.com/xdb/5e602d793141unverifiedvulncheckvulncheck.com/xdb/9d0f3b1cdffcunverifiedvulncheckvulncheck.com/xdb/2372c571d51bunverifiedvulncheckvulncheck.com/xdb/3a544bce6facunverifiedvulncheckvulncheck.com/xdb/34e73d61d621unverifiedvulncheckvulncheck.com/xdb/92c9400dcff7unverifiedvulncheckvulncheck.com/xdb/513b57e55c0funverifiedvulncheckvulncheck.com/xdb/b7fcc6ca47d8unverifiedvulncheckvulncheck.com/xdb/38dd7dd03007unverifiedvulncheckvulncheck.com/xdb/337989a2a577unverifiedvulncheckvulncheck.com/xdb/b5c1ab2d5bc5unverifiedvulncheckvulncheck.com/xdb/df60c287f1cdunverifiedvulncheckvulncheck.com/xdb/1b42cf9134f3unverifiedvulncheckvulncheck.com/xdb/5dfed5d68cbcunverifiedvulncheckvulncheck.com/xdb/30dc525b1c57unverifiedvulncheckvulncheck.com/xdb/a920eeb5ee6aunverifiedvulncheckvulncheck.com/xdb/c1e14c928d8dunverifiedvulncheckvulncheck.com/xdb/dda5454aa978unverifiedvulncheckvulncheck.com/xdb/f47a53762ef3unverifiedvulncheckvulncheck.com/xdb/20280d4b350bunverifiedvulncheckvulncheck.com/xdb/fd5f95144a75unverifiedvulncheckvulncheck.com/xdb/5773e4ea569bunverifiedvulncheckvulncheck.com/xdb/c4cfff7455b8unverifiedvulncheckvulncheck.com/xdb/0cd00e5128ddunverifiedvulncheckvulncheck.com/xdb/9d3cbfdc257funverifiedvulncheckvulncheck.com/xdb/dbca6ea08b41unverifiedvulncheckvulncheck.com/xdb/fb291c123615unverifiedvulncheckvulncheck.com/xdb/9c7436629672unverifiedvulncheckvulncheck.com/xdb/bbdb72777ec9unverifiedvulncheckvulncheck.com/xdb/1992a6b42411unverifiedvulncheckvulncheck.com/xdb/9b37ededd8acunverifiedvulncheckvulncheck.com/xdb/fe25757247c8unverifiedvulncheckvulncheck.com/xdb/1e4bb0c90cb0unverifiedvulncheckvulncheck.com/xdb/24ab649cd1daunverifiedvulncheckvulncheck.com/xdb/9eeabd073ffeunverifiedvulncheckvulncheck.com/xdb/f0dd214c0a71unverifiedvulncheckvulncheck.com/xdb/fae964aee837unverifiedvulncheckvulncheck.com/xdb/5bf0668927e9unverifiedvulncheckvulncheck.com/xdb/927ddcc5b795unverifiedvulncheckvulncheck.com/xdb/d0691e1ab72cunverifiedvulncheckvulncheck.com/xdb/7f001c599f37unverifiedvulncheckvulncheck.com/xdb/43a16c730cfdunverifiedvulncheckvulncheck.com/xdb/af94773df67eunverifiedcve_referencewww.exploit-db.com/exploits/41614/unverifiedvulncheckvulncheck.com/xdb/43cd5602564cunverifiedvulncheckvulncheck.com/xdb/7609b3e7cb98unverifiedvulncheckvulncheck.com/xdb/3c19ff65296aunverifiedvulncheckvulncheck.com/xdb/2ee648e8c5abunverifiedvulncheckvulncheck.com/xdb/bad29a83176eunverifiedvulncheckvulncheck.com/xdb/000c5dcf9e6cunverifiedvulncheckvulncheck.com/xdb/dcc67ac85fddunverifiedcve_referencepacketstormsecurity.com/files/141494/S2-45-poc.py.txtunverifiedvulncheckvulncheck.com/xdb/92284df22d05unverifiedvulncheckvulncheck.com/xdb/fecafad12e6cunverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.