CVE-2026-54725

vault-addr annotation SSRF -- webhook makes outbound HTTP call to attacker URL during admission; vault-serviceaccount enables cluster-wide SA token theft via TokenRequest API

Published Jul 31, 2026 CVSS 3.1 · 9.6 Critical EPSS < 1% KEV · Not listed
Description
vault-secrets-webhook is a Kubernetes mutating webhook that makes direct secret injection into Pods possible. Prior to 1.23.1, parseVaultConfig() in pkg/webhook/config.go accepts the vault.security.banzaicloud.io/vault-addr annotation, MutateConfigMap and MutateSecret call newVaultClient in pkg/webhook/webhook.go, and vault.security.banzaicloud.io/vault-serviceaccount can cause a ServiceAccount JWT to be sent to an attacker-controlled Vault address. This issue is fixed in version 1.23.1.

Analysis

AI-generated

Technical impact

The vulnerability resides in the vault-secrets-webhook component, which parses the vault.security.banzaicloud.io/vault-addr annotation. Prior to version 1.23.1, the annotation value is used as the address of a Vault instance when creating a Vault client. An attacker who can add or modify this annotation on any Kubernetes resource subject to the webhook—such as ConfigMaps or Secrets—can cause the webhook to establish an outbound HTTP request to an attacker‑controlled address. The code path then triggers a TokenRequest API call that leaks the requesting ServiceAccount JWT to the malicious Vault endpoint. This allows the attacker to retrieve the token for any ServiceAccount whose pods have been mutated by the webhook, potentially enabling credential theft, secret injection, and lateral movement within the cluster. The weakness is a Server‑Side Request Forgery (CWE‑918).

Affected Systems

The product affected is vault-secrets-webhook from the bank‑vaults project. All releases prior to version 1.23.1 contain the flaw. The attack could be exploited against any Kubernetes cluster where this webhook is deployed, regardless of cloud provider or on‑premises installation.

Risk and Exploitability

The CVSS score of 9.6 classifies the vulnerability as critical. The EPSS score of < 1% indicates a low probability of exploitation at present, and the vulnerability is not yet listed in the CISA KEV catalog. Nevertheless, the attack vector is through the admission webhook mechanism; a user with permission to create or modify resources that are inspected by the webhook (for example, a developer with pod creation rights) can trigger the SSRF. Once triggered, the attacker obtains a valid ServiceAccount JWT that can be used to call the Cluster‑Roles API or further pods, leading to widespread credential compromise.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade vault‑secrets‑webhook to version 1.23.1 or newer.
  • If an upgrade is not feasible, remove or disable the vault.security.banzaicloud.io/vault-addr and vault.security.banzaicloud.io/vault-serviceaccount annotations in all manifests, or enforce policies that block their usage.
  • Restrict RBAC so that only trusted administrators can create or modify resources processed by the webhook, reducing the attack surface.
  • Monitor logs and network traffic for outbound connections to suspicious external endpoints and consider applying egress network policies to limit the webhook pod’s outbound traffic.

Generated by OpenCVE AI on August 2, 2026 at 04:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-r2v3-8gwf-7ghm vault-addr annotation SSRF -- webhook makes outbound HTTP call to attacker URL during admission; vault-serviceaccount enables cluster-wide SA token theft via TokenRequest API
History
Type Values Removed Values Added
First Time appeared Bank-vaults
Bank-vaults vault-secrets-webhook
Vendors & Products Bank-vaults
Bank-vaults vault-secrets-webhook
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description vault-secrets-webhook is a Kubernetes mutating webhook that makes direct secret injection into Pods possible. Prior to 1.23.1, parseVaultConfig() in pkg/webhook/config.go accepts the vault.security.banzaicloud.io/vault-addr annotation, MutateConfigMap and MutateSecret call newVaultClient in pkg/webhook/webhook.go, and vault.security.banzaicloud.io/vault-serviceaccount can cause a ServiceAccount JWT to be sent to an attacker-controlled Vault address. This issue is fixed in version 1.23.1.
Title vault-addr annotation SSRF -- webhook makes outbound HTTP call to attacker URL during admission; vault-serviceaccount enables cluster-wide SA token theft via TokenRequest API
Weaknesses CWE-918
References
Metrics cvssV3_1

{'score': 9.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N'}

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 31, 2026, 6:58 PM
Reserved
Jun 15, 2026, 11:07 PM
Status
Deferred
Published
Jul 31, 2026, 6:17 PM
Modified
Oct 23, 2026, 11:10 PM