criticalCVSS 9.9Vulnerability

CVE-2026-77524

## Summary A namespace admin who creates a `TriggerAuthentication` and a `ScaledObject` in their own namespace can make the KEDA operator send its own ServiceAccount token to a tenant-controlled URL. That token holds `["*"]/["*"] get` cluster-wide, so it reads every Secret in every namespace, plus `batch/jobs` and `horizontalpodautoscalers` create/delete cluster-wide, `*/scale` update on any workload, `validatingwebhookconfigurations` update (rewrite or disable cluster admission), and `apiservices` update (hijack aggregated API routing). This is effectively privilege escalation from namespace admin to cluster admin in real environments: a cluster-wide Secret read alone is enough to find a token for a more privileged ServiceAccount, and the cluster-wide `batch/jobs` create lets the attacker run a workload in any namespace whose Pod Security Admission level permits it (or that is PSA-exempt, such as `kube-system` , `kyverno`) to reach the node filesystem and a control-plane kubeconfig. This is an incomplete fix of CVE-2025-68476: its content filter only requires the loaded file to be a JWT whose subject begins with `system:serviceaccount:`, which the operator's own projected token satisfies by construction. The destination field `hashiCorpVault.address` is unvalidated. Finder credits: Artem Cherezov @cherez0ff, with Claude Opus 4.8 ## Verified live kind v1.31.2, kedacore/keda v2.20.0 (latest at the time of audit, <https://github.com/kedacore/keda>) installed from the unmodified release manifest `keda-2.20.0.yaml` (`ghcr.io/kedacore/keda:2.20.0`), default settings. ## Preconditions 1. The tenant holds `create` on `triggerauthentications.keda.sh` and `scaledobjects.keda.sh` in its own namespace (the documented KEDA tenant workflow), plus the built-in `edit` ClusterRole in that namespace. Often granted by a namespaced admin Role (`--verb='*' --resource='*.*'`) in multi-tenant environments. 2. KEDA is installed with default settings. ## Reproduction ### Cluster p

Properties

severity
critical
summary
KEDA: Privilege escalation from namespace admin to cluster admin via KEDA TriggerAuthentication
cvss_score
9.9
retrieved_at
2026-10-15T22:56:51+00:00
ghsa_published
2026-10-15T20:19:42Z
source_url
https://github.com/advisories/GHSA-637c-6jxx-4rwm
ghsa_updated
2026-10-15T20:19:44Z
ghsa_id
GHSA-637c-6jxx-4rwm
last_source
GitHub Advisory Database
cve_id
CVE-2026-77524
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
signal_observed_at
2026-10-15T22:56:51+00:00
is_ghsa_only
false

Related Entities (7)

VULNERABLE_TO (2)

←[Software]go/github.com/kedacore/keda/v2
←[Software]go/github.com/kedacore/keda

AFFECTS (2)

→[Software]go/github.com/kedacore/keda/v2
→[Software]go/github.com/kedacore/keda

HAS_WEAKNESS (2)

→[Weakness]Improper Privilege Management
→[Weakness]Server-Side Request Forgery (SSRF)

REPORTED_BY (1)

→[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-77524 (CVSS 9.9) — Ninja Signal Threat Intelligence | Ninja Signal