/

CVE-2026-105941

Severity:

HIGH RISK

(8.1)

SSRF (CWE-918) in Kroxylicious Azure Key Vault KMS

CVE-2026-105941

Awaiting Analysis

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-918

Impact:

Credential Exfiltration and Unauthorized Key Vault Access

Severity:

HIGH RISK

(8.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A server-side request forgery vulnerability in Kroxylicious's Azure Key Vault KMS provider allows an attacker to influence the vault destination encoded in wire-deserialized EDEK data. Under conditions where crafted EDEK bytes are processed, the proxy may send its Azure bearer token to an attacker-controlled host, enabling token replay against the legitimate Key Vault.

A server-side request forgery vulnerability in Kroxylicious's Azure Key Vault KMS provider allows an attacker to influence the vault destination encoded in wire-deserialized EDEK data. Under conditions where crafted EDEK bytes are processed, the proxy may send its Azure bearer token to an attacker-controlled host, enabling token replay against the legitimate Key Vault.

Affected context

The issue occurs in deployments using Kroxylicious's Azure Key Vault KMS provider when EDEK bytes received from an untrusted or insufficiently authenticated source are deserialized and their vaultName value is used to construct outbound requests. Risk increases when the provider does not constrain vault destinations to an approved Azure Key Vault endpoint or otherwise protect bearer-token-bearing requests from attacker-controlled routing.

The issue occurs in deployments using Kroxylicious's Azure Key Vault KMS provider when EDEK bytes received from an untrusted or insufficiently authenticated source are deserialized and their vaultName value is used to construct outbound requests. Risk increases when the provider does not constrain vault destinations to an approved Azure Key Vault endpoint or otherwise protect bearer-token-bearing requests from attacker-controlled routing.

Exploit preconditions

  • Attack surface: Processing of wire-deserialized EDEK bytes by the Azure Key Vault KMS provider
  • Required access: Ability to supply, influence, or cause processing of crafted EDEK data
  • Trigger point: Resolution of the vaultName value during a KMS operation
  • Why exploitation is possible: The deserialized vaultName is trusted without sufficient format or destination validation, allowing outbound requests to be redirected to an attacker-controlled host
  • Credential condition: The proxy must attach an Azure bearer token to the resulting request for token exfiltration to occur
  • Attack surface: Processing of wire-deserialized EDEK bytes by the Azure Key Vault KMS provider
  • Required access: Ability to supply, influence, or cause processing of crafted EDEK data
  • Trigger point: Resolution of the vaultName value during a KMS operation
  • Why exploitation is possible: The deserialized vaultName is trusted without sufficient format or destination validation, allowing outbound requests to be redirected to an attacker-controlled host
  • Credential condition: The proxy must attach an Azure bearer token to the resulting request for token exfiltration to occur

Why this happens

The underlying bug is a failure to treat wire-deserialized destination data as untrusted input. The provider uses vaultName to influence an outbound request without enforcing a strict format, approved-host policy, or equivalent trust boundary. This behavior maps to CWE-918: Server-Side Request Forgery, because attacker-controlled data can cause a server-side component to make requests to an unintended destination while carrying privileged authentication material.

The underlying bug is a failure to treat wire-deserialized destination data as untrusted input. The provider uses vaultName to influence an outbound request without enforcing a strict format, approved-host policy, or equivalent trust boundary. This behavior maps to CWE-918: Server-Side Request Forgery, because attacker-controlled data can cause a server-side component to make requests to an unintended destination while carrying privileged authentication material.

Potential impact

  • An attacker may exfiltrate the proxy's Azure bearer token
  • Exfiltrated credentials could be replayed against the legitimate Azure Key Vault
  • Unauthorized key-management operations could occur
  • Record-encryption confidentiality and integrity could be weakened
  • The proxy's cloud identity may be abused for broader resource access, depending on permissions
  • An attacker may exfiltrate the proxy's Azure bearer token
  • Exfiltrated credentials could be replayed against the legitimate Azure Key Vault
  • Unauthorized key-management operations could occur
  • Record-encryption confidentiality and integrity could be weakened
  • The proxy's cloud identity may be abused for broader resource access, depending on permissions

General mitigation guidance

Mitigation generally focuses on removing attacker control over outbound request destinations and minimizing the value of credentials exposed to network requests.

Common defensive patterns include:

  • Accepting only strictly validated vault identifiers that match the intended Azure Key Vault format
  • Resolving vault names through an allowlist of approved tenants, subscriptions, domains, or endpoint identities
  • Rejecting absolute URLs, alternate schemes, host overrides, and ambiguous destination representations
  • Separating wire-deserialized metadata from trusted provider configuration
  • Applying outbound network controls that permit requests only to approved Key Vault endpoints
  • Using narrowly scoped, least-privilege identities and tokens for KMS operations
  • Avoiding credential forwarding when the destination has not been independently verified
  • Treating malformed or unexpected EDEK data as a validation failure before any network request

Mitigation generally focuses on removing attacker control over outbound request destinations and minimizing the value of credentials exposed to network requests.

Common defensive patterns include:

  • Accepting only strictly validated vault identifiers that match the intended Azure Key Vault format
  • Resolving vault names through an allowlist of approved tenants, subscriptions, domains, or endpoint identities
  • Rejecting absolute URLs, alternate schemes, host overrides, and ambiguous destination representations
  • Separating wire-deserialized metadata from trusted provider configuration
  • Applying outbound network controls that permit requests only to approved Key Vault endpoints
  • Using narrowly scoped, least-privilege identities and tokens for KMS operations
  • Avoiding credential forwarding when the destination has not been independently verified
  • Treating malformed or unexpected EDEK data as a validation failure before any network request

How teams detect issues like this

Detection approaches commonly include:

  • Static analysis and code review for outbound HTTP clients whose host, URL, or authority is derived from deserialized input
  • Checks for missing allowlists, URL canonicalization, scheme restrictions, and destination validation
  • Tests using malformed, alternate-format, and attacker-controlled vaultName values to confirm requests are rejected
  • Network telemetry that flags Key Vault provider traffic to unapproved hosts or unexpected destinations
  • Policy enforcement requiring cloud-service egress restrictions and preventing bearer-token-bearing requests to arbitrary endpoints
  • Automated security review tools that identify SSRF-prone request construction and credential forwarding patterns

Detection approaches commonly include:

  • Static analysis and code review for outbound HTTP clients whose host, URL, or authority is derived from deserialized input
  • Checks for missing allowlists, URL canonicalization, scheme restrictions, and destination validation
  • Tests using malformed, alternate-format, and attacker-controlled vaultName values to confirm requests are rejected
  • Network telemetry that flags Key Vault provider traffic to unapproved hosts or unexpected destinations
  • Policy enforcement requiring cloud-service egress restrictions and preventing bearer-token-bearing requests to arbitrary endpoints
  • Automated security review tools that identify SSRF-prone request construction and credential forwarding patterns

Sources

SourceLink
access.redhat.comaccess.redhat.com/security/cve/CVE-2026-105941
bugzilla.redhat.combugzilla.redhat.com/show_bug.cgi?id=2510876
github.comgithub.com/kroxylicious/kroxylicious/commit/aa1b02a5f8e5bb5003f88b3160a811019cd11139
github.comgithub.com/kroxylicious/kroxylicious/security/advisories/GHSA-5j25-p663-ww5r

Frequently asked

questions

It can be exploitable through a remotely supplied or otherwise attacker-influenced EDEK value when the affected provider processes that data and makes the resulting outbound request.

The attacker needs a way to submit, modify, or cause processing of wire-deserialized EDEK bytes. Direct access to the proxy host is not necessarily required if those bytes can enter through an exposed application or protocol path.

Do not derive cloud request destinations directly from untrusted serialized data. Enforce strict validation and allowlists, reject ambiguous formats, and apply network egress restrictions as defense in depth.

Treat all deserialized routing fields as untrusted, isolate trusted provider configuration from wire data, use least-privilege cloud identities, and continuously monitor outbound requests for unexpected destinations.

It can be exploitable through a remotely supplied or otherwise attacker-influenced EDEK value when the affected provider processes that data and makes the resulting outbound request.

The attacker needs a way to submit, modify, or cause processing of wire-deserialized EDEK bytes. Direct access to the proxy host is not necessarily required if those bytes can enter through an exposed application or protocol path.

Do not derive cloud request destinations directly from untrusted serialized data. Enforce strict validation and allowlists, reject ambiguous formats, and apply network egress restrictions as defense in depth.

Treat all deserialized routing fields as untrusted, isolate trusted provider configuration from wire data, use least-privilege cloud identities, and continuously monitor outbound requests for unexpected destinations.

Find out what's already
exploitable in your codebase.