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.
Published: 2026-07-31
Score: 9.6 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

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.

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

Remediation

No vendor fix or workaround currently provided.

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

Sun, 02 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Bank-vaults
Bank-vaults vault-secrets-webhook
Vendors & Products Bank-vaults
Bank-vaults vault-secrets-webhook

Fri, 31 Jul 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Fri, 31 Jul 2026 18:15:00 +0000

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'}


Subscriptions

Bank-vaults Vault-secrets-webhook
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-31T18:58:46.332Z

Reserved: 2026-06-15T23:07:33.232Z

Link: CVE-2026-54725

cve-icon Vulnrichment

Updated: 2026-07-31T18:58:14.904Z

cve-icon NVD

Status : Received

Published: 2026-07-31T18:17:17.013

Modified: 2026-07-31T19:17:10.833

Link: CVE-2026-54725

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-02T20:32:26Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)