MEDIUM 5.9

CVE-2026-50202: Steeltoe JWT Cache Collision Enables Unauthorized Authentication Across Multiple Providers

Steeltoe is a framework that helps developers build cloud-native applications on platforms like Cloud Foundry. A flaw in its JWT authentication libraries allows JWT signing keys to be cached and reused inappropriately. Specifically, when an application uses multiple authentication schemes pointing to different identity providers, a key validated for one provider could be mistakenly accepted for another. Additionally, keys remain cached indefinitely—even after a provider rotates or revokes them—until the application restarts. This creates a window where compromised or expired keys continue to grant access.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.9 MEDIUM · CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N
Weaknesses (CWE)
CWE-668
Affected products
0 configuration(s)
Published / Modified
2026-06-17 / 2026-06-22

NVD description (verbatim)

Steeltoe is an open source project that provides a collection of libraries that helps users build cloud-native applications. In Steeltoe.Security.Authentication.CloudFoundryBase prior to version 3.4.0, Steeltoe.Security.Authentication.JwtBearer prior to version 4.2.0, and Steeltoe.Security.Authentication.OpenIdConnect prior to version 4.2.0, the JWT signing key cache in `TokenKeyResolver` uses `kid` as the sole cache key without namespacing by authority. In applications with multiple `JwtBearer` schemes pointing to different identity providers, a key fetched for one scheme can satisfy token validation for another. Additionally, cached keys have no expiration, so rotated or revoked keys remain trusted until the application process restarts. Steeltoe.Security.Authentication.CloudFoundryBase version 3.4.0, Steeltoe.Security.Authentication.JwtBearer version 4.2.0, and Steeltoe.Security.Authentication.OpenIdConnect version 4.2.0 patch the issue. If an immediate upgrade is not possible: In multi-scheme deployments, configure only one `JwtBearer` scheme per application when different identity providers are required; and/or restart the application process after an identity provider signing key rotation to clear stale cached keys.

3 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in the `TokenKeyResolver` cache implementation across three Steeltoe authentication packages. The cache uses only the JWT key ID (`kid` claim) as the lookup key without including the authority (identity provider) as part of the cache key. This namespace collision means a signing key fetched from Identity Provider A is available in the cache for validation against tokens from Identity Provider B. Furthermore, cached keys lack any expiration or refresh logic, so key rotation at the identity provider does not invalidate cached copies. Exploitation requires an attacker to obtain a valid JWT signed with a key from one identity provider and present it to an application configured to trust a different provider that previously cached a key with the same `kid`. The attack surface is limited to multi-scheme JwtBearer deployments with distinct identity providers.

Business impact

The primary risk is unauthorized access in multi-tenant or multi-provider environments. An attacker who controls or compromises one identity provider's signing key could forge tokens accepted by applications also integrated with other identity providers. Organizations operating hybrid authentication architectures face elevated risk of lateral movement and privilege escalation. The indefinite caching of keys also extends the window of compromise after a provider detects and revokes a key, creating compliance and breach detection challenges. Impact is medium severity because exploitation requires high privilege (ability to obtain or sign tokens at one provider) and specific architectural conditions.

Affected systems

Steeltoe.Security.Authentication.CloudFoundryBase versions prior to 3.4.0, Steeltoe.Security.Authentication.JwtBearer versions prior to 4.2.0, and Steeltoe.Security.Authentication.OpenIdConnect versions prior to 4.2.0 are affected. Applications using these libraries are vulnerable only if configured with multiple JwtBearer authentication schemes backed by different identity providers. Single-scheme deployments or those using a single identity provider are not vulnerable. Organizations should audit their application configurations to determine whether they instantiate multiple distinct authentication pipelines pointing to different authorities.

Exploitability

Exploitation is not trivial and requires specific conditions: the attacker must obtain a valid JWT from one identity provider integrated with the target application, and the application must simultaneously trust a second identity provider that has previously cached a key with the same `kid` value. The CVSS vector (AC:H, PR:H) reflects these high barriers—the attacker needs high privileges and the conditions must align. No known public exploits exist, and the vulnerability is not tracked on the CISA KEV catalog. However, the flaw is straightforward to exploit in the right environment, and key collisions between providers are plausible in real-world scenarios.

Remediation

Upgrade to Steeltoe.Security.Authentication.CloudFoundryBase 3.4.0 or later, Steeltoe.Security.Authentication.JwtBearer 4.2.0 or later, or Steeltoe.Security.Authentication.OpenIdConnect 4.2.0 or later. Patched versions namespace the cache by both `kid` and authority, and implement cache expiration for rotated keys. Until an upgrade is possible, implement compensating controls: reduce configurations to a single JwtBearer scheme per application (deploy separate application instances if multiple providers are required), and establish a process to restart application processes immediately following identity provider key rotations to purge stale cache entries.

Patch guidance

Apply the vendor patches promptly to the affected Steeltoe NuGet packages. The patches modify the TokenKeyResolver cache implementation to include the token issuer (authority) as part of the cache key and add expiration logic. Verify the patch versions in your package manager—confirm CloudFoundryBase ≥ 3.4.0, JwtBearer ≥ 4.2.0, and OpenIdConnect ≥ 4.2.0. For applications with complex multi-provider setups, test the patches in a staging environment to ensure proper cache isolation before production deployment. Review your identity provider's key rotation schedule and ensure automated detection and restart procedures are in place.

Detection guidance

Monitor application logs for JWT validation errors that reference unexpected authorities or issuer mismatches—these may indicate cache pollution attempts. Log key cache hits and misses if instrumentation is available. In your identity provider's audit logs, correlate JWT validation failures with periods when keys were rotated to identify whether stale cached keys were being accepted. For network-based detection, inspect JWT claims in authentication traffic and flag tokens where the `iss` (issuer) claim does not align with the intended authentication scheme. Correlate successful authentications across provider boundaries as a potential signal of cache-based token smuggling.

Why prioritize this

Although the CVSS score is medium (5.9), prioritize this vulnerability in any environment running multi-scheme authentication with distinct identity providers. The flaw is subtle but high-impact: once exploited, it grants persistent access until remediation. Organizations should inventory their Steeltoe deployments and focus first on those with multiple JwtBearer configurations. Single-provider deployments can be deprioritized. The patch is straightforward and carries low regression risk, so upgrade scheduling should account for standard change management rather than emergency response timelines.

Risk score, explained

The CVSS 3.1 score of 5.9 (MEDIUM) reflects a network-accessible vulnerability (AV:N) with high attack complexity (AC:H) due to the need for specific multi-provider configuration and high required privileges (PR:H) to obtain a valid JWT from one provider. The impact is high for confidentiality and integrity (C:H, I:H) because compromised tokens grant unauthorized access and privilege escalation, but no availability impact (A:N). The scope is unchanged (S:U)—the vulnerability does not break out of the application boundary. The score appropriately captures that the flaw is serious in the wrong configuration but not universally exploitable.

Frequently asked questions

Will this affect our application if we only use one identity provider?

No. The vulnerability requires multiple JwtBearer authentication schemes pointing to different identity providers. If your application has only one configured authentication scheme or all schemes point to the same authority, you are not vulnerable. However, verify your application configuration to be certain.

Do we need to rotate keys at our identity provider to mitigate this?

Key rotation alone does not mitigate the issue because unpatched Steeltoe instances will continue to cache and trust old keys indefinitely. You must upgrade Steeltoe first. After patching, key rotations will be respected because cached keys will expire. Until then, coordinate key rotations with immediate application restarts as a compensating control.

Can we work around this without upgrading?

Yes, two compensating controls exist. First, reconfigure applications to use only one JwtBearer scheme per process (deploy multiple application instances if you need multiple providers). Second, establish a process to restart your application immediately after any identity provider key rotation to flush the cache. These are interim measures and should not replace patching.

How do we know if we've been exploited?

Look for successful JWT authentications from unexpected issuers in your audit logs, or authentication tokens accepted by schemes not configured for their issuer. Monitor your identity provider's logs for attempts to validate tokens signed with old or rotated keys. If an identity provider has experienced a key compromise, immediately check whether your application accepted tokens signed with that compromised key during the vulnerability window.

This analysis is based on the vulnerability description and CVSS metadata provided. No active exploitation or KEV tracking has been reported as of the publication date. Organizations should verify patch availability and compatibility against their specific Steeltoe versions and application architecture before deploying updates. For the most current remediation guidance, consult the official Steeltoe project advisory and your identity provider's documentation. This intelligence is provided for informational purposes and does not constitute security advice or a guarantee of protection. Source: NVD (public-domain), retrieved 2026-07-27. Analysis generated by SEC.co (claude-haiku-4-5).