Skip to content

CVE-2017-5638: Equifax Struts2

Is CVE-2017-5638 real, exploitable, or a false positive? Here's the community verdict.

Community verdict: No field verdicts yet. Be the first practitioner to weigh in.

signals

public sources

Exploited in wild
Yes
CISA KEV · Nov 3, 2021
Public exploit
Metasploit +2
Metasploit/EDB/PoC
Base severity
9.8 Critical
CVSS
Exploitation prob.
100%
FIRST EPSS
Weakness
CWE-755
CWE

Confirmed exploited in the wild. Patch this first, regardless of the base score.

cisa ssvc

CISA Vulnrichment · assessed

Exploitation
Active
in the wild
Automatable
Yes
at scale
Technical impact
Total
on success

CISA decision, by how critical the affected system is to you:

  • low impact → Attend
  • medium impact → Act
  • high impact → Act

Track: normal patch cycle · Track*: watch closely · Attend: patch sooner · Act: patch now. About SSVC ↗

public exploits

links to sources — we don’t host code

A working exploit is publicly available from a maintained source. Treat this as higher urgency and verify your exposure.

affected packages

GHSA-j77q-2qqg-6989 · GitHub rates it critical
  • Mavenorg.apache.struts:struts2-core
    Vulnerable
    ≥ 2.3.0, < 2.3.32; ≥ 2.5.0, < 2.5.10.1
    Fixed in
    2.3.32, 2.5.10.1

Source: GitHub Advisory Database (CC-BY 4.0), via OSV.dev. Check your lockfile version against the ranges above.

baseline read

auto · not a community verdict

Real — exploited in the wild

CISA confirms active exploitation. Treat scanner hits as true positives unless your specific version or config is unaffected.

Based on CISA KEV

Confirm or dispute →

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

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.

Published · Added to CISA KEV (1699 days after publication)

Embed this verdict
TruePositive verdict for CVE-2017-5638
Markdown
[![TruePositive verdict](https://www.truepositive.app/cve/CVE-2017-5638/badge.svg)](https://www.truepositive.app/cve/CVE-2017-5638)
HTML
<a href="https://www.truepositive.app/cve/CVE-2017-5638"><img src="https://www.truepositive.app/cve/CVE-2017-5638/badge.svg" alt="TruePositive verdict for CVE-2017-5638"></a>

Live badge that updates automatically as the community verdict changes.

timeline

  1. CISA SSVC assessment · exploitation: active
  2. Added to CISA KEV · confirmed exploited in the wild
  3. Added to VulnCheck KEV · reported exploited in the wild
  4. Published by NVD

Score and exploit changes tracked since .

Community ground truth

Be the first practitioner to weigh in

So far this is only TruePositive's editorial baseline from public sources. Add your real-world verdict below — it becomes the signal the next person triaging this relies on.

🥇 The first 50 practitioners to contribute earn a Founding Contributor badge.

In your experience, is this finding real and exploitable?

awaiting field verdicts
Real, but not a risk here
Not a real issue

Curated baseline: TruePositive's read from public sources is Real & exploitable — a starting point, not a community verdict.

No account needed. Anonymous verdicts post as an unverified signal. Log in to make yours verified and earn reputation.

Field notes & remediation

Verdicts are the quick signal. Notes are the evidence and fixes behind them.

  • 0
    Field note · TruePositive EditorialCurated

    This is real and very easy to exploit. An attacker sends a malformed Content-Type header, and Struts runs the contents as an OGNL expression, which gives code execution with no login. This is the bug behind the Equifax breach. Public exploits appeared within hours and the internet was mass-scanned for it.

    Who is affected: applications using Apache Struts 2 with the Jakarta Multipart parser on vulnerable versions (2.3.5 to 2.3.31, and 2.5 to 2.5.10). If the app is internet-facing and unpatched, assume it was probed.

    How to check: find the Struts version bundled in your app's libraries. If it is in the vulnerable range and reachable, treat it as exploitable and look for signs of past compromise, because this was hit at scale.

    Commonly flagged by: Nessus, Qualys, Rapid7, Trivy.

  • 0
    Remediation · TruePositive EditorialCurated

    Upgrade Struts to 2.3.32 or 2.5.10.1 or later. If you cannot patch right away and you do not use file uploads, switch off the Jakarta Multipart parser, or add a WAF rule to block malformed Content-Type headers. Treat those as temporary. After patching, hunt for web shells and unexpected child processes from the app server.

Add a field note or remediationoptional
Note type

What are you adding?

Markdown supported · minimum 20 characters.

Same weakness: CWE-755.