CVE-2022-22965 is dangerous because it enables remote code execution through data binding, and attackers do not need a username or password to reach the vulnerable endpoint. In affected Tomcat deployments, an attacker can pass crafted class names, reach insecure object handling, and potentially write a malicious JSP file to disk. That turns a web request into server compromise and possible data leakage.
Why this vulnerability is dangerous in Tomcat-based Spring stacks
CVE-2022-22965 matters because the vulnerability sits at the point where request processing, data binding, and server-side file handling meet. In a Tomcat deployment, that combination can let an attacker turn a normal HTTP request into code execution, which means the issue is not limited to a single endpoint or application feature. The blast radius is often the entire application runtime.
The practical risk is amplified by the fact that exploitation does not depend on valid user credentials. When a flaw is reachable without authentication, every exposed instance becomes part of the attack surface, and defenders lose the protection that login barriers normally provide. That changes the problem from privilege misuse into direct remote compromise.
Because the vulnerable path can be triggered through crafted class names and insecure object binding, the issue is especially dangerous in frameworks that automatically map request data into application objects. Attackers are not trying to break a business rule in the usual sense, they are trying to steer the framework into dangerous server-side behavior. The result can include file writes, malicious JSP placement, and persistent execution on the host.
How exploitation turns one request into server compromise
Spring’s binding model is convenient when request parameters are trusted, but it becomes hazardous when attacker-controlled values can influence nested properties, type resolution, or other internal object state. In affected versions, the exploit path can let the attacker supply data that reaches sensitive server components and causes the application to act on classes or paths it should never have touched.
On Tomcat, that matters because the server is often configured to interpret JSP content as executable server-side logic. If an attacker can place a malicious JSP file where Tomcat will serve it, they may gain a durable execution foothold rather than a one-time crash or data leak. That is why this CVE is usually treated as a remote code execution issue, not just an input validation flaw.
The security lesson is that the highest-risk outcome is not the individual payload, but the trust boundary failure. A single request crosses from the network layer into application internals, then into the filesystem, then into server execution. Each step increases impact and reduces the defender’s ability to contain the attack once it starts.
Why the risk stays high even when the app seems low value
Many teams underestimate this class of issue because they focus on the business function of the application rather than the runtime privileges it inherits from Tomcat and the host OS. A low-visibility application can still run with enough access to write files, invoke libraries, and expose configuration or secrets stored alongside the app. If the process is compromised, the attacker may pivot to adjacent systems, cached credentials, or internal APIs.
The exposure also scales with deployment consistency. If the same Spring artifact is reused across environments, a single unpatched pattern can create many identical attack surfaces. That makes patch lag, dependency drift, and version sprawl especially dangerous because the vulnerable behavior may be present in more places than the team can easily inventory.
For a clear record of the class of event this falls into, the NIST National Vulnerability Database is the authoritative place to verify affected products, severity context, and the official CVE record, while the CVE Program defines the vulnerability identifier and lifecycle. For Tomcat-based exploitation patterns that lead from exposed secrets or misused server-side trust to full compromise, The 52 NHI Breaches Report provides adjacent attacker tradecraft and breach patterns that help teams think about post-exploitation blast radius.
Risk and Threat Considerations
This vulnerability is high risk because it combines unauthenticated reachability with server-side execution potential. Once attackers can drive the application into writing or loading executable content, the incident can move quickly from reconnaissance to persistent compromise, especially where the web process has filesystem access beyond the minimum required for normal operation.
Failure mechanism: Crafted request data influences Spring’s binding and object handling in a way that reaches sensitive Tomcat-side behavior, allowing remote code execution or malicious file placement.
Impact: Attackers can gain control of the application process, steal data, alter content, stage follow-on payloads, and use the compromised server as a pivot point into the wider environment.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
MITRE ATT&CK addresses the attack and risk surface, while NIST SP 800-53 Rev 5 and OWASP ASVS set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST SP 800-53 Rev 5 | SI-10 — Information Input Validation | The flaw is triggered by unsafe request data reaching server logic. |
| AC-6 — Least Privilege | Server compromise becomes worse when the app can write or execute broadly. | |
| Recommendation — Validate and constrain all request data before binding it to server-side objects. Reduce application and service permissions to the minimum needed for runtime. | ||
| OWASP ASVS | V8 — Authorization | Unauthenticated reachability and unsafe server actions make access control material. |
| Recommendation — Verify that sensitive actions require appropriate authorization and cannot be reached through unsafe binding paths. | ||
| MITRE ATT&CK | T1190 — Exploit Public-Facing Application | The vulnerability is exploited through an exposed web application endpoint. |
| T1505.003 — Web Shell | Malicious JSP placement is a web-shell style persistence outcome. | |
| Recommendation — Hunt for public-facing application exploitation and block suspicious request patterns. Detect and remove web shells or unexpected server-side script files. | ||
Practitioner Guidance
What to verify: Confirm the exact Spring and Tomcat versions, then test whether the exposed endpoint is reachable without authentication and whether the application can write to web-accessible paths. If the process can create executable web content, treat the instance as high priority even before you confirm active exploitation.
Decision rule: If the application is internet-facing or handles sensitive data, patching and exposure reduction should outrank normal maintenance scheduling. If you cannot patch immediately, reduce reachability, restrict write permissions, and monitor for unexpected JSP creation or unusual server-side file writes.
Practitioner takeaway: The core issue is not just a vulnerable framework version, it is an unauthenticated path from request input to code execution, so containment must focus on removing that path, not only on scanning for a CVE string.
Related resources from NHI Mgmt Group
- Why does CVE-2024-53677 create such a high-risk condition in Java web applications?
- Why does command injection create such high risk when applications use eval, exec, or shell-based commands?
- Why does Spring4Shell create such high risk for web applications using Spring MVC or Spring WebFlux?
- Why do vulnerable Spring applications create such high compromise risk in production environments?