CVE-2026-105312
Console-operator: streams for apache kafka console: tenant-controlled container image on clusterrole-bound pod enables namespace-to-cluster privilege escalation
A Kubernetes tenant with create permission on Console custom resources can set spec.containers.api.spec.image to an arbitrary container image. The operator deploys this image into a pod whose ServiceAccount is bound via ClusterRoleBinding to a ClusterRole granting cluster-wide get/list/watch on all Strimzi CRDs (including KafkaUsers), patch on Kafkas/KafkaRebalances, and cluster-monitoring-view. The attacker's code reads the projected SA token and gains cross-tenant Strimzi control-plane read+write access.
Fixes and workarounds
Workaround
1. Restrict Console CR RBAC — remove create/update/patch verbs on consoles.console.streamshub.github.com from tenant-level Roles. Only cluster administrators should manage Console CRs. 2. Deploy admission webhook — use OPA/Gatekeeper or Kyverno policy to validate spec.containers.api.spec.image against a trusted registry allowlist. 3. Apply network policies — restrict console-api pod egress to only required endpoints. 4. Single-tenant deployment — deploy the Console operator where only trusted administrators manage Console CRs. --- CME Mitigation Guidance (2026-10-20) --- Disclaimer: The following mitigation solutions are provided as a courtesy, pending the application of an official patch. This content was generated utilizing AI tools in conjunction with data from https://cmetaxonomy.org. Customers are advised to independently evaluate and test these temporary mitigations within their own infrastructure. The highest-value action is to eliminate unvalidated container image deployment in the Console operator by enforcing image allowlists or removing tenant image override capabilities: upgrade to the fixed Console Operator builds, which requires image allowlist validation or removal of tenant image override capability to prevent deploying unvalidated images into pods bound to cluster-wide Strimzi CRD permissions, closing all 2 injection vectors (arbitrary container image injection via spec.containers.api.spec.image, ServiceAccount token exfiltration from privileged pod). Until patched, this is only a concern on Kubernetes clusters running Streams for Apache Kafka Console where tenants have RBAC permissions to create or update Console custom resources — single-tenant Kubernetes clusters where only cluster administrators manage Console custom resources are unaffected — so remove create, update, and patch permissions on Console custom resources from tenant-level RBAC roles and deploy admission webhooks to enforce container image allowlists. As a compensating measure, configure Kubernetes API server audit logging to detect Console custom resource changes and anomalous ServiceAccount operations, apply Kubernetes NetworkPolicies to block outbound pod traffic to the API server and external endpoints, restrict outbound egress to authorized endpoints to prevent ServiceAccount token exfiltration, separate tenant custom resource creation duties from privileged workload deployment, scope the console-server ServiceAccount to minimum required namespace permissions rather than cluster-wide access, and deploy Falco or eBPF runtime security to detect ServiceAccount token file access and unauthorized processes. These controls limit blast radius and contain exploitation, but they do not fix the underlying unvalidated container image specification — apply the upstream patch to fully remediate. Highest-impact CME: CME-206 Network Policy (Kubernetes) (medium)
Source: CNA: redhatAffected products and versions
| Product | Versions | Authority |
|---|---|---|
| StreamsHub Console for Apache Kafka® Red Hat console
https://github.com/streamshub/console |
≥ 0.2.0; < 0.12.10 (affected, semver) ≥ 0.13.0; < 0.14.2 (affected, semver) Other versions: unaffected |
CNA: redhat |
| streams for Apache Kafka 2 Red Hat console-operator
https://access.redhat.com/downloads/content/package-browser/ |
Range not reported
Other versions: unaffected |
CNA: redhat |
| streams for Apache Kafka 3 Red Hat console-operator
https://access.redhat.com/downloads/content/package-browser/ |
Range not reported
Other versions: affected |
CNA: redhat |
Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.
CVSS assessments
| Version / score | Vector | Authority |
|---|---|---|
| 3.1 / 9.9 critical |
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L | CNA: redhat |
| 3.1 / 9.9 critical |
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L | NVD: [email protected] |
Exploit evidence
No exploit evidence in collected sources. This is not proof of no exploitation.
References
- https://access.redhat.com/security/cve/CVE-2026-105312CNA: redhat · vdb-entry, x_refsource_REDHAT
- https://bugzilla.redhat.com/show_bug.cgi?id=2510863CNA: redhat · issue-tracking, x_refsource_REDHAT
- https://access.redhat.com/security/cve/CVE-2026-105312[email protected]
- https://bugzilla.redhat.com/show_bug.cgi?id=2510863[email protected]
For agents and automation
Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.
Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.
Endpoints and access details
https://api.y2.dev/api/v2/cyber/cveshttps://api.y2.dev/api/v2/cyber/cves/{cveId}
A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.
For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.