SSRF and ServiceAccount JWT exfiltration in bank-vaults vault-secrets-webhook
CVE-2026-54725 is a server-side request forgery vulnerability in bank-vaults vault-secrets-webhook affecting versions prior to 1.23.1. vault-secrets-webhook is a Kubernetes mutating webhook used for direct secret injection into Pods. The flaw arises because parseVaultConfig() in pkg/webhook/config.go accepts a user-controlled Vault address via the vault.security.banzaicloud.io/vault-addr annotation, and code paths including MutateConfigMap and MutateSecret invoke newVaultClient in pkg/webhook/webhook.go using that attacker-influenced destination. When the vault.security.banzaicloud.io/vault-serviceaccount annotation is also used, the webhook can obtain and transmit a ServiceAccount JWT to the attacker-controlled Vault endpoint. This creates an SSRF condition with credential exfiltration during admission-related processing.
What it means and what to do now: patch path, interim mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
Successful exploitation allows an attacker to coerce the webhook into making outbound requests to arbitrary destinations reachable from the webhook pod. This can expose internal services and cloud metadata endpoints and, more critically, can leak Kubernetes ServiceAccount JWTs associated with accounts in the affected namespace. Stolen tokens may then be replayed against Vault or other trusting services to obtain secrets or perform actions permitted to that ServiceAccount. The published severity context indicates high confidentiality and integrity impact, with no primary availability impact.
If you can’t patch tonight, do this now.
If immediate upgrade is not possible, restrict who can create or update ConfigMaps and Secrets in namespaces watched by the webhook, because those operations can reach the vulnerable mutation paths. Limit or remove the webhook's ability to create ServiceAccount tokens where operationally feasible. Constrain egress from the webhook pod so it can communicate only with approved Vault endpoints, and block access to sensitive internal destinations such as cloud metadata services. Review namespace and RBAC design to reduce opportunities for low-privileged users to influence webhook annotations and token issuance behavior.
Patch, then assume compromise.
Upgrade bank-vaults vault-secrets-webhook to version 1.23.1 or later, which fixes the unsafe handling of attacker-controlled Vault addresses and the associated token exposure path. Ensure all deployed webhook instances and dependent images are updated to the fixed release.
No public exploits tracked yet. Mallory keeps watching.
9 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.