KubernetesApplication

CVE-2022-3162

MEDIUM · 6.5 CVSS v3.1 Published 2023-03-01
Fix available
A fix is available. Upgrade to after 1.25.3 or later.
See remediation →
71/100
Remediation priority · Elevated
Remotely reachable Zero-click

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 · unedited
Users 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 confidence

This 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.

MitigationUpdate 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.

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
KubernetesApplication
Affected:<= 1.22.15>= 1.23.0, <= 1.23.13>= 1.24.0, <= 1.24.7>= 1.25.0, <= 1.25.3

CVSS 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 checks

Work through these to decide whether this CVE applies to you.

  1. Check Kubernetes API server version
    Run `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 version
    Affected 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
  2. Identify CRDs sharing the same API group
    Run `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 values
    Affected 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')
  3. Audit RBAC for cluster-wide list/watch permissions on CRDs
    Run `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 group
    Affected 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
  4. Check for cross-CRD authorization in the same API group
    Review 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 individually
    Affected 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.

Check your environment

Paste your version and any relevant configuration and it will be compared against the affected criteria above. Do not include secrets or credentials.

AI-assisted, checked against the advisory. Informational, not a guarantee.

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 · scoped
Upgrade available Upgrade to a release after 1.25.3
Interim mitigation

Update 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.

Recommended fix Moderate confidence

Kubernetes 1.22.16, 1.23.14, 1.24.8, or 1.25.4 (or later)

  1. 1. Identify all CustomResourceDefinitions (CRDs) in your cluster and their API groups using: kubectl get crds --all-namespaces
  2. 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. 3. For each affected API group with multiple CRDs, verify users only have permissions they explicitly need
  4. 4. Upgrade Kubernetes to a fixed version: 1.22.16+, 1.23.14+, 1.24.8+, or 1.25.4+
  5. 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
Caveat Minor release upgrades in Kubernetes may have behavioral changes; review the Kubernetes release notes for your target version for any breaking changes affecting your workloads

Generated from the published advisory — verify against the referenced sources before acting.

Fix this in Kubernetes Scoped from the published advisory
  • Consultation3.0 h
  • Implementation4.0 h
  • Testing2.0 h
  • Review / QA1.0 h
10.0 hours of engineering $1,800
Get the upgrade done

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 locally
dbcve dependency scanner

Check 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 sources

Practitioner notes

Contributed

Peer-ranked notes from engineers who’ve handled CVE-2022-3162 in production — separate from our analysis above.

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.

What this is

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.

What belongs here
  • 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