CVE-2026-22752: Critical Metadata Injection Flaw in Spring Authorization Server’s Dynamic Client Registration
In the ecosystem of modern identity management, the Authorization Server serves as the “source of truth” for application security. A recently disclosed vulnerability, tracked as CVE-2026-22752, has sent ripples through the Spring ecosystem, specifically targeting organizations leveraging the Dynamic Client Registration feature within the Spring Authorization Server.
This isn’t just a minor bug; it is a fundamental breakdown in input validation that allows an attacker to manipulate the very metadata used to define client identities. Responsibility for uncovering this flaw goes to security researcher Kelvin Mbogo, who collaborated with the Spring Security team for a coordinated disclosure on April 21, 2026.
The Technical Breakdown: How the Exploit Works
The vulnerability lies in the way the Dynamic Client Registration endpoint handles incoming requests when the feature is explicitly enabled. Under normal operations, this endpoint allows OAuth clients to register themselves programmatically. However, the current implementation fails to sufficiently sanitize and validate specific metadata fields provided during this registration process.
An attacker who has managed to obtain even a low-level Initial Access Token can exploit this by submitting a registration request containing “poisoned” metadata. Because the server trusts this metadata and stores it in its backend, the attack becomes persistent. Depending on how the server interacts with this metadata later, three distinct high-impact attack vectors emerge:
- Stored Cross-Site Scripting (XSS): By injecting malicious JavaScript into metadata fields (such as client names or URI descriptions), an attacker can execute code in the context of a security administrator’s browser session when they view the client registry.
- Server-Side Request Forgery (SSRF): If the metadata includes URLs used for callback or discovery processes, an attacker can coerce the Authorization Server into making unauthorized requests to internal, non-public infrastructure, effectively bypassing perimeter firewalls.
- Privilege Escalation: By manipulating the scope or permission-related metadata during registration, an attacker might trick the system into granting a malicious client higher authorization levels than intended.
Risk Assessment and CVSS Analysis
The vulnerability carries a concerning CVSS vector: AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N. To translate this into plain English: the attack is network-exploitable (it can be done remotely), features low complexity (it doesn’t require sophisticated timing or special conditions), and only requires low-level privileges (a standard user token). The S:C (Scope: Changed) designation is particularly critical, as it indicates that a breach in the authorization component can lead to a compromise of other components in the system.
Affected Versions and Remediation Path
If your stack includes the following versions, your environment is at risk and requires immediate intervention:
- Spring Security: 7.0.0 through 7.0.4
- Spring Authorization Server:
- 1.3.0 – 1.3.10
- 1.4.0 – 1.4.9
- 1.5.0 – 1.5.6
The Spring team has released patched versions to resolve these validation gaps. We strongly recommend the following upgrade path:
| Current Version Range | Recommended Upgrade | License Type |
|---|---|---|
| Spring Security 7.0.x | 7.0.5 | OSS |
| Spring Authorization Server 1.3.x | 1.3.11 | Commercial |
| Spring Authorization Server 1.4.x | 1.4.10 | Commercial |
| Spring Authorization Server 1.5.x | 1.5.7 | OSS |
Note: Organizations utilizing commercial builds can access these fixes via Spring Enterprise.
Final Security Recommendations
In cloud-native and microservice-heavy environments, the Authorization Server is the linchpin of trust. A single successful injection can lead to lateral movement across an entire service mesh.
Immediate Action Plan:
- Patch First: Prioritize upgrading to the versions listed above.
- Mitigation: If an immediate patch is impossible due to deployment constraints, disable the Dynamic Client Registration endpoint in your configuration immediately. This will prevent the attack vector while you prepare your upgrade.
- Audit: Inspect your client registries for any suspicious or anomalous metadata entries that may have been injected prior to the patch.