Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain namespace pod-create access
-
DeliveryDefine pod with serviceAccountName gather
-
ExploitService account grants cluster-wide secret read
-
ExecutionList secrets across all namespaces
-
ImpactExfiltrate cluster-wide credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated foothold able to create or influence a pod specification in at least one namespace (RBAC permission to create pods, or control over a workload manifest) AND the ability to set 'serviceAccountName: gather' on that pod; the vulnerable insights-operator-gather ClusterRole is present by default in OpenShift Container Platform 4 installs. The limiting factor is the pod-create/service-account-binding privilege (reflected as PR:L) - an attacker with no cluster access cannot trigger this, so it functions as a privilege-escalation primitive rather than remote-unauthenticated compromise. There is no user-interaction requirement and no reliance on a non-default feature flag; the over-broad grant exists out of the box. |
| Impact | This is a privilege-escalation flaw (CWE-269) in the insights-operator shipped by default with Red Hat OpenShift Container Platform 4, where the insights-operator-gather ClusterRole grants the 'gather' service account cluster-wide get/list on core-group secrets with no namespace or resourceNames scoping. The CVSS 7.7 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N) is internally consistent with the description: PR:L reflects that an attacker must already hold some authenticated foothold able to schedule a pod, S:C reflects the scope break (reading secrets belonging to every other namespace/workload), and C:H/I:N/A:N correctly captures pure confidentiality impact with no integrity or availability loss. No EPSS score, CISA KEV listing, SSVC decision, or public POC was supplied in the input; per precision rules this is therefore 'no public exploit identified at time of analysis.' The realistic priority is driven less by raw CVSS than by the pre-condition: an attacker needs the ability to create a pod and bind it to the gather service account, so this is primarily a privilege-escalation lateral-movement amplifier for an actor who already has a namespace foothold rather than a remote-unauthenticated mass-exploitation bug. The AV:N label should be read in Kubernetes terms (the API server is network-reachable) and does NOT imply unauthenticated internet exposure - verify RBAC exposure against your own cluster's pod-creation permissions. One caveat: the input provides no EPSS/KEV/POC signals at all, so exploitation-likelihood scoring is inferred solely from the CVSS vector and description. |
| Exploit ScenarioDerived | An attacker who has obtained the ability to create or control pod specifications in any namespace of an affected OpenShift 4 cluster (e.g., a compromised CI pipeline, a tenant with namespace-level pod-create rights, or a low-privileged account after initial access) schedules a pod with 'serviceAccountName: gather'. Because the mounted gather service account inherits cluster-wide secret read access, the pod can then enumerate and read every secret in every namespace - including other tenants' credentials, TLS keys, and tokens. No public exploit code is referenced in the input, but the technique is trivially reproducible from the manifest shown. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Red Hat OpenShift Container Platform 4 ships by default with an insights-operator-gather ClusterRole that grants the operator's 'gather' service account cluster-wide get/list access to core-group secrets, with no namespace or resourceNames scoping. An authenticated actor who can create or influence a pod specification in any namespace - and set 'serviceAccountName: gather' on it - can mount that service account and read every secret in every namespace, making this a privilege-escalation and cluster-wide credential-disclosure primitive (CWE-269, CVSS 7.7, scope-changed confidentiality-only). Exploitation requires a pre-existing foothold with pod-create or service-account-binding rights (PR:L), so it is not remotely exploitable by an unauthenticated user; no public exploit code has been identified at time of analysis, and the over-broad grant exists out of the box rather than behind a non-default feature flag.
RemediationAI
No vendor-released patch or fixed version is identified in the available intelligence at time of analysis, so remediation is currently mitigation-driven. The primary compensating control is to narrow the insights-operator-gather ClusterRole: replace the unrestricted secrets get/list rule with the minimum the operator actually requires - either drop secrets access entirely if gather telemetry does not need it, or constrain it with resourceNames or a namespace-scoped Role/RoleBinding limited to the specific secrets the operator must read; the trade-off is that the insights-operator may fail to collect the affected telemetry, degrading Red Hat Insights reporting. In parallel, reduce the attack surface by tightening RBAC so that only trusted principals can create pods or workloads in any namespace and can bind the gather service account - remove broad 'create pods' and serviceaccount/token permissions from tenant roles and restrict workload-creation to platform teams, understanding this may break legitimate self-service developer workflows. Where policy tooling is available (OpenShift SCCs, Kyverno, OPA Gatekeeper, ValidatingAdmissionPolicy), add an admission rule that rejects or flags pods specifying serviceAccountName: gather outside the insights-operator's own namespace, and audit the cluster for existing pods already mounting that account (kubectl get pods -A -o jsonpath with serviceAccountName == gather) to detect prior abuse. Also rotate any credentials that may have been exposed via secret reads. Track the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-93017 and Bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=2515741 for a vendor fix and apply it as soon as it is released.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenShift's insights-operator collects cluster telemetry for Red Hat Insights, and it does so under a dedicated 'gather' service account bound to the insights-operator-gather ClusterRole (defined in manifests/03-clusterrole.yaml). ClusterRoles are cluster-scoped RBAC objects, and the referenced rule grants 'get' and 'list' on resources 'secrets' in the core API group (apiGroups: "") without a namespace selector or a resourceNames allowlist - Kubernetes RBAC rules with neither restriction apply to every matching object in the entire cluster, so the grant resolves to read access on all Secrets across all namespaces, including kube-system, openshift-* and tenant namespaces. The root cause is CWE-269 (Improper Privilege Management): a workload that only needs a bounded slice of data is provisioned with a far broader permission set than required. The escalation path relies on standard Kubernetes pod semantics: a pod's serviceAccountName field determines which service-account token is projected into it, so any principal able to create a pod (directly, via a workload controller it controls, or by editing an existing manifest) in a namespace where the gather service account is usable can project those credentials and then trade them for cluster-wide secret reads via the API. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N reflects exactly this shape: network-reachable API, low-complexity, low-privilege prerequisite, no user interaction, scope change because the vulnerable component (the operator's role) grants access well outside its own security boundary, and high confidentiality impact with no integrity or availability effect.
Know when Red Hat Openshift Container Platform 4 gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Attacker needs low-privileged cluster access to schedule a pod (PR:L), acting over the Kubernetes API (AV:N); reading secrets across other namespaces breaks scope (S:C) for pure confidentiality impact (C:H, I/A:N).
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
The insights-operator-gather ClusterRole grants the operator's service account read access to secrets in the core API group with no namespace or resourceNames restriction - therefore, access to every secret in every namespace in the cluster.
Ref: https://github.com/openshift/insights-operator/blob/8f15e3157ff09f54ab22801f5b21da35a195cc6d/manifests/03-clusterrole.yaml#L368-L373
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- listBy spawning a pod with the gather service account mounted, an attacker will be able to access any secret in any namespace.
spec:
serviceAccountName:"gather"Executive ViewAI
Red Hat OpenShift Container Platform 4 ships out of the box with an over-permissive ClusterRole (insights-operator-gather) that lets a specific operator service account read secrets across every namespace in the cluster without any scoping. Any user or workload that already holds the ability to create a pod in any namespace could exploit this to harvest cluster-wide credentials, escalating from a limited foothold to broad access over sensitive data and service credentials. Leadership should care because this affects every default OpenShift 4 deployment, requires no unusual configuration to be present, and exposes the entire secret store of the cluster, making containment of any compromised account materially harder.
No vendor-released patch identified at time of analysis. Interim mitigations: remove or scope the cluster-wide secret get/list permission from the insights-operator-gather ClusterRole; use resourceNames or namespace-scoped RoleBindings instead of the default cluster-wide grant; deploy Kyverno or OPA Gatekeeper policy to deny pods that set 'serviceAccountName: gather'; restrict pod-create and service-account-binding rights to trusted identities; monitor audit logs for pod creations using the gather service account; and rotate secrets, service account tokens, and registry credentials that the gather account could access.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Affected Products (CPE)CVE.org
Remote code execution in Samba's printing subsystem allows remote attackers to inject arbitrary shell commands via craft
Elevated-privilege container restoration in CRI-O 1.34 and later, including downstream Red Hat OpenShift Container Platf
The system CA trust store shipped in Red Hat's ca-certificates RPM packages includes eMudhra root authorities that signe
Privilege escalation in Red Hat Advanced Cluster Management's multicloud-operators-subscription controller lets a low-pr
Remote code execution in libarchive on 32-bit systems allows unauthenticated attackers to execute arbitrary code via spe
Unauthenticated path traversal in gvproxy, the network forwarder shipped in the gvisor-tap-vsock package (used by Podman
Out-of-bounds read in the GnuTLS DTLS handshake reassembly logic lets remote unauthenticated attackers trigger an intege
Local privilege escalation in Performance Co-Pilot (PCP) on Red Hat Enterprise Linux 6 through 10 and OpenShift Containe
Local-to-domain-wide root privilege escalation in SSSD's LDAP sudo provider allows an authenticated LDAP directory user
Symlink-following file overwrite on the Ansible control node is possible in ansible-core when a user runs `ansible-galax
A use-after-free race condition in QEMU's 9pfs (virtfs) passthrough subsystem allows a malicious guest user to escape th
Privilege escalation in Red Hat OpenShift Container Platform 4's insights-runtime-extractor DaemonSet lets an authentica
EUVD-2026-95030
GHSA-97xr-6xrj-3f39
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB