Check the status of CVEs. Learn More.
Compliance + Protection: Strengthen your cybersecurity defenses with TuxCare’s Security Hardening – or gain painless FIPS 140-3 compliance with Extended Security Updates.
This CVE has been resolved by the TuxCare team and
a patch has been delivered to ELS for Spring users.
Spring Security is a powerful authentication and access control framework for Java applications, particularly those built using Spring Framework. It provides a comprehensive security solution, addressing various concerns such as authentication, authorization, and protection against common security vulnerabilities.
Authorization Bypass through User-Controlled Key takes place when the system’s authorization functionality does not prevent one user from gaining access to another user’s data or record by modifying the key value identifying the data.
In this CVE, Spring Security is impacted by Authorization Bypass for Case Sensitive Comparisons in Spring Security. It is an equivalent of CVE-2024-38820 but for Spring Security. The usage of String.toLowerCase() and String.toUpperCase() has some Locale dependent exceptions that could potentially result in authorization rules not working properly.
This issue affects multiple versions of:
org.springframework.security:spring-security-taglibs package.
org.springframework.security:spring-security-cas package, org.springframework.security:spring-security-config package,
Org.springframework.security:spring-security-core package,
Org.springframework.security:spring-security-crypto package,
Org.springframework.security:spring-security-data package,
Org.springframework.security:spring-security-ldap package, org.springframework.security:spring-security-oauth2-client package, org.springframework.security:spring-security-taglibs package, org.springframework.security:spring-security-web package.
Vulnerability Dossier | |
---|---|
CVE ID | CVE-2024-38827 |
Severity | Medium: 4.8 |
CWE-ID and name | CWE-639 Authorization Bypass Through User-Controlled Key |
Affected project | Spring Security |
Affected packages | spring-security-cas spring-security-config spring-security-core spring-security-crypto spring-security-data spring-security-ldap spring-security-oauth2-client spring-security-taglibs spring-security-web |
Affected versions | 5.6.2 and older, <5.7.0;5.7.13>, <5.8.0;5.8.15>, <6.0.0;6.0.13>, <6.1.0;6.1.11>, <6.2.0;6.2.7>, <6.3.0;6.3.4> |
NVD publish date | 2nd of December 2024 (Spring.io: 19th of November 2024) |
Open source fix date | 18th of November 2024 |
Open Source fixed versions | 5.8.16 |
Fixed In: Open-source community version 5.6.16 (credit: Joe Grandja) and in ELS for Spring Security v5.8.16.TuxCare, which relies on version 5.8.16 as a baseline.
The String.toLowerCase() and String.toUpperCase() methods in Java use locale-specific rules for case conversion. These rules can differ greatly depending on the locale, which could lead to unexpected results when comparing or transforming strings. For instance, the French locale has unique case-mapping rules for certain characters like ‘œ’ and ‘oe’, in German locale ‘ß’ and ‘ss’, etc. which deviate from the default behavior.
Spring Security 5.8.x is no longer supported by the open source community as its End of Life date is 2023-12-31. This simply means that versions from that date do not receive any updates to address this issue.
Users of the affected components should apply one of the following mitigations:
Do you need a fix for this vulnerability for any other Spring Security version? Please contact us – we are here to help you!