A Spring MVC or Spring WebFlux application running on JDK 9+ may be vulnerable to remote code execution (RCE) via data binding. The specific exploit requires the application to run on Tomcat as a WAR deployment. If the application is deployed as a Spring Boot executable jar, i.e. the default, it is not vulnerable to the exploit. However, the nature of the vulnerability is more general, and there may be other ways to exploit it.
In Spring Framework versions 5.3.0 - 5.3.18, 5.2.0 - 5.2.20, and older unsupported versions, the patterns for disallowedFields on a DataBinder are case sensitive which means a field is not effectively protected unless it is listed with both upper and lower case for the first character of the field, including upper and lower case for the first character of all nested fields within the property path.
In logback version 1.2.7 and prior versions, an attacker with the required privileges to edit configurations files could craft a malicious configuration allowing to execute arbitrary code loaded from LDAP servers.
n Spring Framework versions 5.3.0 - 5.3.16 and older unsupported versions, it is possible for a user to provide a specially crafted SpEL expression that may cause a denial of service condition.
Jakarta Expression Language provides a specification document, API, reference implementation and TCK
that describes an expression language for Java applications.
In the Jakarta Expression Language implementation 3.0.3 and earlier, a bug in the ELParserTokenManager enables invalid EL expressions to be evaluated as if they were valid.
In Spring Framework versions 5.3.0 - 5.3.13, 5.2.0 - 5.2.18, and older unsupported versions, it is possible for a user to provide malicious input to cause the insertion of additional log entries. This is a follow-up to CVE-2021-22096 that protects against additional types of input and in more places of the Spring Framework codebase.
In Spring Framework versions 5.3.0 - 5.3.10, 5.2.0 - 5.2.17, and older unsupported versions, it is possible for a user to provide malicious input to cause the insertion of additional log entries.
Vulnerable Library - spring-boot-starter-validation-2.4.3.jar
Found in HEAD commit: 50449e8346df657611a75bc79e49c2e4cb325b5b
Vulnerabilities
Details
CVE-2022-22965
### Vulnerable Library - spring-beans-5.3.4.jarSpring Beans
Library home page: https://github.com/spring-projects/spring-framework
Dependency Hierarchy: - spring-boot-starter-validation-2.4.3.jar (Root Library) - spring-boot-starter-2.4.3.jar - spring-boot-2.4.3.jar - spring-context-5.3.4.jar - :x: **spring-beans-5.3.4.jar** (Vulnerable Library)
Found in HEAD commit: 50449e8346df657611a75bc79e49c2e4cb325b5b
Found in base branch: main
### Vulnerability DetailsA Spring MVC or Spring WebFlux application running on JDK 9+ may be vulnerable to remote code execution (RCE) via data binding. The specific exploit requires the application to run on Tomcat as a WAR deployment. If the application is deployed as a Spring Boot executable jar, i.e. the default, it is not vulnerable to the exploit. However, the nature of the vulnerability is more general, and there may be other ways to exploit it.
Publish Date: 2022-04-01
URL: CVE-2022-22965
### CVSS 3 Score Details (9.8)Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: Low - Privileges Required: None - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: High - Integrity Impact: High - Availability Impact: High
For more information on CVSS3 Scores, click here. ### Suggested FixType: Upgrade version
Origin: https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
Release Date: 2022-04-01
Fix Resolution: org.springframework:spring-beans:5.2.20.RELEASE,5.3.18
CVE-2022-22968
### Vulnerable Library - spring-context-5.3.4.jarSpring Context
Library home page: https://github.com/spring-projects/spring-framework
Dependency Hierarchy: - spring-boot-starter-validation-2.4.3.jar (Root Library) - spring-boot-starter-2.4.3.jar - spring-boot-2.4.3.jar - :x: **spring-context-5.3.4.jar** (Vulnerable Library)
Found in HEAD commit: 50449e8346df657611a75bc79e49c2e4cb325b5b
Found in base branch: main
### Vulnerability DetailsIn Spring Framework versions 5.3.0 - 5.3.18, 5.2.0 - 5.2.20, and older unsupported versions, the patterns for disallowedFields on a DataBinder are case sensitive which means a field is not effectively protected unless it is listed with both upper and lower case for the first character of the field, including upper and lower case for the first character of all nested fields within the property path.
Publish Date: 2022-04-14
URL: CVE-2022-22968
### CVSS 3 Score Details (7.5)Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: Low - Privileges Required: None - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: None - Integrity Impact: High - Availability Impact: None
For more information on CVSS3 Scores, click here. ### Suggested FixType: Upgrade version
Origin: https://tanzu.vmware.com/security/cve-2022-22968
Release Date: 2022-01-11
Fix Resolution: org.springframework:spring-context:5.2.21,5.3.19
CVE-2021-42550
### Vulnerable Libraries - logback-core-1.2.3.jar, logback-classic-1.2.3.jar### logback-core-1.2.3.jar
logback-core module
Library home page: http://logback.qos.ch
Dependency Hierarchy: - spring-boot-starter-validation-2.4.3.jar (Root Library) - spring-boot-starter-2.4.3.jar - spring-boot-starter-logging-2.4.3.jar - logback-classic-1.2.3.jar - :x: **logback-core-1.2.3.jar** (Vulnerable Library) ### logback-classic-1.2.3.jar
logback-classic module
Library home page: http://logback.qos.ch
Dependency Hierarchy: - spring-boot-starter-validation-2.4.3.jar (Root Library) - spring-boot-starter-2.4.3.jar - spring-boot-starter-logging-2.4.3.jar - :x: **logback-classic-1.2.3.jar** (Vulnerable Library)
Found in HEAD commit: 50449e8346df657611a75bc79e49c2e4cb325b5b
Found in base branch: main
### Vulnerability DetailsIn logback version 1.2.7 and prior versions, an attacker with the required privileges to edit configurations files could craft a malicious configuration allowing to execute arbitrary code loaded from LDAP servers.
Publish Date: 2021-12-16
URL: CVE-2021-42550
### CVSS 3 Score Details (6.6)Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: High - Privileges Required: High - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: High - Integrity Impact: High - Availability Impact: High
For more information on CVSS3 Scores, click here. ### Suggested FixType: Upgrade version
Origin: https://cve.mitre.org/cgi-bin/cvename.cgi?name=VE-2021-42550
Release Date: 2021-12-16
Fix Resolution: ch.qos.logback:logback-classic:1.2.9;ch.qos.logback:logback-core:1.2.9
CVE-2022-22950
### Vulnerable Library - spring-expression-5.3.4.jarSpring Expression Language (SpEL)
Library home page: https://github.com/spring-projects/spring-framework
Dependency Hierarchy: - spring-boot-starter-validation-2.4.3.jar (Root Library) - spring-boot-starter-2.4.3.jar - spring-boot-2.4.3.jar - spring-context-5.3.4.jar - :x: **spring-expression-5.3.4.jar** (Vulnerable Library)
Found in HEAD commit: 50449e8346df657611a75bc79e49c2e4cb325b5b
Found in base branch: main
### Vulnerability Detailsn Spring Framework versions 5.3.0 - 5.3.16 and older unsupported versions, it is possible for a user to provide a specially crafted SpEL expression that may cause a denial of service condition.
Publish Date: 2022-04-01
URL: CVE-2022-22950
### CVSS 3 Score Details (6.5)Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: Low - Privileges Required: Low - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: None - Integrity Impact: None - Availability Impact: High
For more information on CVSS3 Scores, click here. ### Suggested FixType: Upgrade version
Origin: https://tanzu.vmware.com/security/cve-2022-22950
Release Date: 2022-04-01
Fix Resolution: org.springframework:spring-expression:5.2.20,5.3.17
CVE-2021-28170
### Vulnerable Library - jakarta.el-3.0.3.jarJakarta Expression Language provides a specification document, API, reference implementation and TCK that describes an expression language for Java applications.
Library home page: https://projects.eclipse.org/projects/ee4j.el
Dependency Hierarchy: - spring-boot-starter-validation-2.4.3.jar (Root Library) - :x: **jakarta.el-3.0.3.jar** (Vulnerable Library)
Found in HEAD commit: 50449e8346df657611a75bc79e49c2e4cb325b5b
Found in base branch: main
### Vulnerability DetailsIn the Jakarta Expression Language implementation 3.0.3 and earlier, a bug in the ELParserTokenManager enables invalid EL expressions to be evaluated as if they were valid.
Publish Date: 2021-05-26
URL: CVE-2021-28170
### CVSS 3 Score Details (5.3)Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: Low - Privileges Required: None - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: None - Integrity Impact: Low - Availability Impact: None
For more information on CVSS3 Scores, click here. ### Suggested FixType: Upgrade version
Origin: https://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2021-28170
Release Date: 2021-05-26
Fix Resolution: org.glassfish:jakarta.el:3.0.4; com.sun.el:el-ri:3.0.4
CVE-2021-22060
### Vulnerable Library - spring-core-5.3.4.jarSpring Core
Library home page: https://github.com/spring-projects/spring-framework
Dependency Hierarchy: - spring-boot-starter-validation-2.4.3.jar (Root Library) - spring-boot-starter-2.4.3.jar - :x: **spring-core-5.3.4.jar** (Vulnerable Library)
Found in HEAD commit: 50449e8346df657611a75bc79e49c2e4cb325b5b
Found in base branch: main
### Vulnerability DetailsIn Spring Framework versions 5.3.0 - 5.3.13, 5.2.0 - 5.2.18, and older unsupported versions, it is possible for a user to provide malicious input to cause the insertion of additional log entries. This is a follow-up to CVE-2021-22096 that protects against additional types of input and in more places of the Spring Framework codebase.
Publish Date: 2022-01-10
URL: CVE-2021-22060
### CVSS 3 Score Details (4.3)Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: Low - Privileges Required: Low - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: None - Integrity Impact: Low - Availability Impact: None
For more information on CVSS3 Scores, click here. ### Suggested FixType: Upgrade version
Origin: https://github.com/advisories/GHSA-6gf2-pvqw-37ph
Release Date: 2022-01-10
Fix Resolution: org.springframework:spring-core:5.2.19, 5.3.14; org.springframework:spring-web:5.2.19, 5.3.14
CVE-2021-22096
### Vulnerable Library - spring-core-5.3.4.jarSpring Core
Library home page: https://github.com/spring-projects/spring-framework
Dependency Hierarchy: - spring-boot-starter-validation-2.4.3.jar (Root Library) - spring-boot-starter-2.4.3.jar - :x: **spring-core-5.3.4.jar** (Vulnerable Library)
Found in HEAD commit: 50449e8346df657611a75bc79e49c2e4cb325b5b
Found in base branch: main
### Vulnerability DetailsIn Spring Framework versions 5.3.0 - 5.3.10, 5.2.0 - 5.2.17, and older unsupported versions, it is possible for a user to provide malicious input to cause the insertion of additional log entries.
Publish Date: 2021-10-28
URL: CVE-2021-22096
### CVSS 3 Score Details (4.3)Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: Low - Privileges Required: Low - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: None - Integrity Impact: Low - Availability Impact: None
For more information on CVSS3 Scores, click here. ### Suggested FixType: Upgrade version
Origin: https://tanzu.vmware.com/security/cve-2021-22096
Release Date: 2021-10-28
Fix Resolution: org.springframework:spring-core:5.2.18.RELEASE,5.3.12;org.springframework:spring-web:5.2.18.RELEASE,5.3.12;org.springframework:spring-webmvc:5.2.18.RELEASE,5.3.12;org.springframework:spring-webflux:5.2.18.RELEASE,5.3.12