Go · go.etcd.io/etcd/v3
etcd: Watch API authorization bypass via open-ended range requests
What kind of vulnerability is it? Who is impacted?
A user granted READ permission on a single, exact key can use the Watch gRPC API with clientv3.WithFromKey() (an open-ended, "from this key to the end of the keyspace" watch) to receive watch events for every key lexicographically greater than or equal to their permitted key — not just the one key they were granted.
This is an authorization bypass in etcd's RBAC enforcement for the Watch API; Range/Get and DeleteRange requests are not affected. It only affects clusters with authentication enabled — clusters running without auth already allow unrestricted read access.
Has the problem been patched? What versions should users upgrade to?
This vulnerability is patched in the following versions:
Is there a way for users to fix or remediate the vulnerability without upgrading?
If upgrading is not immediately possible, the following mitigations reduce exposure:
Is your project exposed to this? Stateward checks every dependency on every pull request and flags it only if your code actually reaches it.
Check my repoSources: CISA KEV (public domain), OSV.dev & GitHub Advisory Database (CC-BY-4.0), FIRST EPSS, NVD/CWE (public domain). Served live from the Stateward advisory database.