CVE-2022-22965
Public on
Last Modified:
Description
A flaw was found in Spring Framework, specifically within two modules called Spring MVC and Spring WebFlux, (transitively affected from Spring Beans), using parameter data binding. This flaw allows an attacker to pass specially-constructed malicious requests to certain parameters and possibly gain access to normally-restricted functionality within the Java Virtual Machine.
Statement
The reporter of this flaw provided a proof-of-concept that relied on Apache Tomcat; it accessed the classloader and changed logging properties to place a web shell in Tomcat's root directory, and was able to call various commands subsequently.
There are several conditions required to achieve this exploit: -Java 9 or newer version -Apache Tomcat as the Servlet container -packaged as WAR file -spring-webmvc or spring-webflux dependency -no protections in place against malicious data bindings (ex: WebDataBinder allow list)
There may be other exploit paths than this, possibly not utilizing Tomcat.
Mitigation
For those who are not able to upgrade affected Spring classes to the fixed versions, there is a workaround customers can implement for their applications, via setting disallowed fields on the data binder, and denying various iterations of the string "class.*"
For full implementation details, see Spring's early announcement post in the "suggested workarounds" section: This content is not included.https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement#suggested-workarounds
Additional information
- This content is not included.Bugzilla 2070348: spring-framework: RCE via Data Binding on JDK 9+
- Content from cwe.mitre.org is not included.CWE-94: Improper Control of Generation of Code ('Code Injection')
Affected Packages and Issued Red Hat Security Errata
Unless explicitly stated as not affected, all previous versions of packages in any minor update stream of a product listed here should be assumed vulnerable, although may not have been subject to full analysis.
| Products / Services | Components | State | Errata |
|---|---|---|---|
| CEQ 2.2.1-1 (CVE-2022-22965) | Fixed | RHSA-2022:1306 | |
| RHDM 7.12.1 async | spring-webmvc | Fixed | RHSA-2022:1379 |
| RHINT Camel-K 1.6.5 | spring-beans | Fixed | RHSA-2022:1333 |
| RHPAM 7.12.1 async | spring-webmvc | Fixed | RHSA-2022:1378 |
| Red Hat AMQ 7.8.6 | Fixed | RHSA-2022:1626 | |
| Red Hat AMQ 7.9.4 | spring-webmvc | Fixed | RHSA-2022:1627 |
| Red Hat Fuse 7.10.2 | spring-webmvc | Fixed | RHSA-2022:1360 |
| Red Hat Integration Camel Quarkus 1 | spring-beans | Affected | |
| Red Hat JBoss A-MQ 6 | spring-webmvc | Fix deferred | |
| Red Hat JBoss Fuse 6 | spring-webmvc | Fix deferred | |
| Red Hat Virtualization 4 | rhvm-dependencies | Fix deferred |
Common Vulnerability Scoring System (CVSS) Score Details
Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authorities (CNA) source for its products and services (see Red Hat classifications ).
CVSS v3 Score Breakdown
| Red Hat | NVD | cve.org | |
|---|---|---|---|
| CVSS v3 Base Score | 8.1 | 9.8 | N/A |
| Attack Vector | Network | Network | N/A |
| Attack Complexity | High | Low | N/A |
| Privileges Required | None | None | N/A |
| User Interaction | None | None | N/A |
| Scope | Unchanged | Unchanged | N/A |
| Confidentiality Impact | High | High | N/A |
| Integrity Impact | High | High | N/A |
| Availability Impact | High | High | N/A |
CVSS v3 Vector
Red Hat CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
NVD CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Red Hat CVSS v3 Score Explanation
There are several conditions which are beyond the attacker's control needed for a successful exploit of this flaw: specific runtime versions, specific servlet container, specific type of packaging, specific dependencies needed, and no protective measures in the application against malicious data bindings. This situation is better reflected by Access Complexity: High rather than Low, and an Impact of Important.
Frequently Asked Questions
Why is Red Hat's CVSS v3 score or Impact different from other vendors?
For more information, see https://access.redhat.com/solutions/762393.
My product is listed as "Under investigation" or "Affected", when will Red Hat release a fix for this vulnerability?
- "Under investigation" doesn't necessarily mean that the product is affected by this vulnerability. It only means that our Analysis Team is still working on determining whether the product is affected and how it is affected.
- "Affected" means that our Analysis Team has determined that this product is affected by this vulnerability and might release a fix to address this in the near future.
What can I do if my product is listed as "Will not fix"?
Available options depend mostly on the Impact of the vulnerability and the current Life Cycle phase of your product. Overall, you have the following options:
- Upgrade to a supported product version that includes a fix for this vulnerability (recommended).
- Apply a mitigation (if one exists).
- Open a This content is not included.support case to request a prioritization of releasing a fix for this vulnerability.
What can I do if my product is listed as "Fix deferred"?
Available options depend mostly on the Impact of the vulnerability and the current Life Cycle phase of your product. Overall, you have the following options:
- Apply a mitigation (if one exists).
- Open a This content is not included.support case to request a prioritization of releasing a fix for this vulnerability.
- Red Hat Engineering focuses on addressing high-priority issues based on their complexity or limited lifecycle support. Therefore, lower-priority issues will not receive immediate fixes.
What is a mitigation?
I have a Red Hat product but it is not in the above list, is it affected?
Why is my security scanner reporting my product as vulnerable to this vulnerability even though my product version is fixed or not affected?
Not sure what something means? Check out our Security Glossary.