CVE-2024-22258
Medium · 6.1CVSS
6.1
EPSS
0.5%
Published
Mar 20, 2024
CISA due date
—
Cloudanix analysis
A flaw in certain authorization servers lets attackers bypass extra login protections used by some apps, potentially allowing them to access accounts without full verification.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Web Framework
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Enables a PKCE downgrade attack against confidential clients that use PKCE with the authorization code grant, allowing an attacker to bypass PKCE verification requirements and obtain authorization codes or tokens.
Why it matters to the business
May permit unauthorized access to protected resources and tokens in authorization flows, increasing risk of account compromise or data exposure; low immediate urgency given stable low EPSS, no KEV listing, and publication over two years ago.
How an attack unfolds
An attacker targets a confidential client using PKCE in the authorization code grant on a vulnerable Spring Authorization Server, manipulates the authorization request to downgrade or strip PKCE parameters, completes the flow, and obtains tokens without supplying a valid code verifier.
How to fix it
Upgrade affected Spring Authorization Server instances to versions beyond 1.2.2; for listed AlmaLinux packages apply nodejs-nodemon 1.18.3-1.module_el8.3.0+2023+d2377ea3 and nodejs-packaging 17-3.module_el8.4.0+2224+b07ac28e where applicable.
How to confirm the fix worked
Review client registration settings to confirm PKCE usage only on public clients or confirm upgrade to patched Spring Authorization Server releases; test authorization flows with and without PKCE to verify enforcement.
Typical attack path
- Identify an authorization endpoint accepting confidential clients configured with PKCE
- Intercept or craft an authorization request containing PKCE challenge parameters
- Perform downgrade manipulation to bypass PKCE checks
- Complete token request to obtain access or refresh tokens
- Use obtained tokens for unauthorized access
How to detect it
Examine authorization server logs for authorization code requests lacking expected PKCE parameters from confidential clients or showing mismatched code challenge methods; review token issuance events for anomalies in grant flows.
What your security team should do
- Prioritize upgrade of Spring Authorization Server to a supported fixed release
- Audit all confidential clients to ensure PKCE configuration aligns with guidance
- Monitor for any new exploit maturity signals despite currently low EPSS
The record
Spring Authorization Server versions 1.0.0 - 1.0.5, 1.1.0 - 1.1.5, 1.2.0 - 1.2.2 and older unsupported versions are susceptible to a PKCE Downgrade Attack for Confidential Clients. Specifically, an application is vulnerable when a Confidential Client uses PKCE for the Authorization Code Grant. An application is not vulnerable when a Public Client uses PKCE for the Authorization Code Grant.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.springframework.security:spring-security-oauth2-authorization-server | 0 | 1.1.6 |
| Maven | org.springframework.security:spring-security-oauth2-authorization-server | 1.2.0 | 1.2.3 |
| Ubuntu:16.04:LTS | spring | 0 | No fix |
| Ubuntu:18.04:LTS | spring | 0 | No fix |
| Ubuntu:20.04:LTS | spring | 0 | No fix |
| Ubuntu:22.04:LTS | spring | 0 | No fix |
| Ubuntu:24.04:LTS | spring | 0 | No fix |
| Ubuntu:24.10 | spring | 0 | No fix |
| Ubuntu:25.04 | spring | 0 | No fix |
| Ubuntu:25.10 | spring | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | spring | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | spring | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | spring | 0 | No fix |
| maven | org.springframework.security/spring-security-oauth2-authorization-server | 1.2.0 | 1.2.3 |
Related vulnerabilities
- CVE-2024-48424 A heap-buffer-overflow vulnerability has been identified in the… Also affects spring
- CVE-2024-48425 A segmentation fault (SEGV) was detected in the Assimp::SplitLargeMeshesProcess_Triangle… Also affects spring
- CVE-2024-48426 A segmentation fault (SEGV) was detected in the SortByPTypeProcess::Execute function in… Also affects spring
- CVE-2026-114660 Grav from 2.0.0 before 2.2.5 contains an improper access control vulnerability in… CWE-470
- CVE-2026-112145 A security vulnerability has been detected in speaches-ai speaches up to 0.9.0-rc.3. CWE-470
- CVE-2026-78030 DBI versions before 1.653 for Perl load arbitrary modules via unvalidated dbm_type and… CWE-470
- CVE-2026-76825 RestrictedPython is a tool that helps define a subset of the Python language for… CWE-470
- CVE-2026-79987 A remote, authenticated, non-admin Craft CMS Control Panel user with only the accessCp… CWE-470