CVE-2022-3162
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedUsers authorized to list or watch one type of namespaced custom resource cluster-wide can read custom resources of a different type in the same API group without authorization. Clusters are impacted by this vulnerability if all of the following are true: 1. There are 2+ CustomResourceDefinitions sharing the same API group 2. Users have cluster-wide list or watch authorization on one of those custom resources. 3. The same users are not authorized to read another custom resource in the same API group.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceThis is a Kubernetes authorization bypass vulnerability in the CustomResourceDefinition (CRD) admission layer. When multiple CRDs share the same API group, a user with cluster-wide list or watch permissions on one CRD can inadvertently read/list/watch other CRDs in the same API group they are not explicitly authorized to access, due to improper scope validation in the authorization check.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data<= 1.22.15>= 1.23.0, <= 1.23.13>= 1.24.0, <= 1.24.7>= 1.25.0, <= 1.25.3CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- None
- Availability
- None
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Check Kubernetes API server versionRun `kubectl get nodes` or check the API server pod version via `kubectl version --short` or inspect the kubeadm config if applicable, or check the kubelet/control plane node OS versionAffected if The installed version falls within any of these ranges: <= 1.22.15, 1.23.0-1.23.13, 1.24.0-1.24.7, 1.25.0-1.25.3
-
Identify CRDs sharing the same API groupRun `kubectl get crds -o jsonpath='{range .items[*]}{.spec.group}{.metadata.name}{"\n"}{end}' | sort` to list all CRDs and their API groups, then look for duplicate API group valuesAffected if Multiple CustomResourceDefinitions exist with identical API group names (the part before the CRD name in the group, e.g., 'example.com' could be shared by 'foos.example.com' and 'bars.example.com')
-
Audit RBAC for cluster-wide list/watch permissions on CRDsRun `kubectl get clusterroles -o jsonpath='{range .items[?(@.rules)]}{.metadata.name}: {range .rules[?(@.resources)]}{.}{end}{"\n"}{end}'` and look for rules where resources include plural CRD names (like 'foos' or 'bars') with verbs 'list' or 'watch' and no 'namespaces' restriction, or inspect with `kubectl auth can-i --list --namespace= --api-group=<group>` for each CRD API groupAffected if Any ClusterRoleBinding grants cluster-scoped 'list' or 'watch' permissions on CRDs (or their plural forms) to users or groups, especially without explicit namespace restrictions
-
Check for cross-CRD authorization in the same API groupReview which users have list/watch access to one CRD but should NOT have access to other CRDs in the same API group by examining ClusterRoleBindings and RoleBindings for permissions on each CRD type individuallyAffected if A user has list/watch permission on one CRD type in an API group but lacks explicit deny or absence of permission on another CRD type in that same group, indicating potential unintended access
You are affected if your Kubernetes version is within the vulnerable ranges AND you have multiple CRDs sharing an API group with cluster-wide RBAC permissions that could allow cross-CRD access.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpdate Kubernetes to the patched version containing the fix. Audit and tighten RBAC policies to ensure cluster-wide list/watch permissions on one CRD do not inadvertently grant access to other CRDs in the same API group.
Kubernetes 1.22.16, 1.23.14, 1.24.8, or 1.25.4 (or later)
- 1. Identify all CustomResourceDefinitions (CRDs) in your cluster and their API groups using: kubectl get crds --all-namespaces
- 2. Review RBAC policies to identify users with cluster-wide list or watch permissions on any namespaced custom resources: kubectl get clusterrolebindings -o wide | grep -i watch
- 3. For each affected API group with multiple CRDs, verify users only have permissions they explicitly need
- 4. Upgrade Kubernetes to a fixed version: 1.22.16+, 1.23.14+, 1.24.8+, or 1.25.4+
- 5. After upgrade, verify the fix by testing that users with list/watch on one CRD type cannot read a different CRD type in the same API group without explicit authorization
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation3.0 h
- Implementation4.0 h
- Testing2.0 h
- Review / QA1.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $2,880.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2022-3162 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2022-3162 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data