Skip to main content
Vulnerability Database/CVE-2026-105312

CVE-2026-105312: Kubernetes Console Privilege Escalation

CVE-2026-105312 is a privilege escalation flaw in Kubernetes Console that lets tenants deploy malicious container images to gain cross-tenant access. This article covers technical details, affected versions, impact, and mitigation.

Published:

CVE-2026-105312 Overview

CVE-2026-105312 is a privilege escalation vulnerability [CWE-269] affecting the Strimzi Console operator in Kubernetes environments. A tenant with create permission on Console custom resources can set spec.containers.api.spec.image to any attacker-controlled container image. The operator then deploys that image into a pod whose ServiceAccount is bound to a ClusterRole with cluster-wide read access to Strimzi custom resources and write access to Kafkas and KafkaRebalances. The attacker code reads the projected ServiceAccount token and gains cross-tenant control-plane access to Strimzi resources across the cluster.

Critical Impact

A low-privileged tenant can break Kubernetes tenant isolation and achieve cluster-wide read/write access to Strimzi Kafka control-plane resources.

Affected Products

  • Strimzi Console operator deployments on Kubernetes
  • Red Hat distributions bundling the Strimzi Console component
  • Multi-tenant Kafka platforms built on Strimzi

Discovery Timeline

  • 2026-10-20 - CVE CVE-2026-105312 published to NVD
  • 2026-10-20 - Last updated in NVD database

Technical Details for CVE-2026-105312

Vulnerability Analysis

The Strimzi Console operator accepts a user-controlled container image reference inside the Console custom resource. The operator does not restrict or validate the spec.containers.api.spec.image field against an allowlist. When the operator reconciles the resource, it schedules a pod running the attacker-supplied image using a privileged ServiceAccount managed by the operator.

That ServiceAccount is bound via ClusterRoleBinding to a ClusterRole that grants cluster-wide get, list, and watch on every Strimzi custom resource definition, including KafkaUser secrets references, plus patch on Kafka and KafkaRebalance resources and cluster-monitoring-view. The pod runs code chosen by the tenant with those permissions.

This breaks the Kubernetes tenancy boundary. The ServiceAccount token mounted into the pod is usable to call the Kubernetes API as the privileged identity. The attacker reads Kafka cluster configurations, user credentials, and rebalance resources that belong to other tenants on the same cluster.

Root Cause

The root cause is an over-permissioned ServiceAccount combined with missing input validation. The Console operator trusts tenant-provided image references and does not scope the deployed pod's ServiceAccount to the owning namespace. The ClusterRole grants cluster-wide verbs instead of namespace-scoped verbs.

Attack Vector

An authenticated tenant creates a Console custom resource and sets spec.containers.api.spec.image to a malicious image hosted on any registry reachable from the cluster. The operator pulls the image and starts the pod with the privileged ServiceAccount. The attacker code inside the container reads the projected token at /var/run/secrets/kubernetes.io/serviceaccount/token and issues Kubernetes API requests against Strimzi CRDs across all namespaces.

See the Red Hat CVE-2026-105312 Advisory and Red Hat Bug Report #2510863 for additional technical context.

Detection Methods for CVE-2026-105312

Indicators of Compromise

  • Console custom resources referencing container images from registries outside the organization's approved registry list.
  • Pods created by the Strimzi Console operator running images with unexpected digests or non-standard entrypoints.
  • Kubernetes audit log entries showing cluster-wide list or watch calls on kafkas.kafka.strimzi.io or kafkausers.kafka.strimzi.io from Console operator ServiceAccounts.
  • patch operations on Kafka or KafkaRebalance resources in namespaces the originating tenant does not own.

Detection Strategies

  • Enable Kubernetes API audit logging and alert on Console-operator ServiceAccount activity that targets resources outside the tenant namespace.
  • Monitor admission controller decisions on Console custom resource creation to detect non-approved image references.
  • Baseline the image references used by the Console operator and flag deviations.

Monitoring Recommendations

  • Forward Kubernetes audit logs and container registry pull events to a centralized data lake for correlation.
  • Track TokenReview and SelfSubjectAccessReview activity originating from Console pods for anomalies.
  • Alert on new or modified ClusterRoleBinding objects that reference Strimzi ServiceAccounts.

How to Mitigate CVE-2026-105312

Immediate Actions Required

  • Restrict create and update permissions on Console custom resources to trusted cluster administrators only.
  • Deploy an admission controller policy that rejects Console resources with spec.containers.api.spec.image values outside an approved registry allowlist.
  • Audit existing Console custom resources for unapproved image references and delete suspect pods.
  • Review Kubernetes audit logs for prior cross-tenant access using Console operator ServiceAccount tokens.

Patch Information

Consult the Red Hat CVE-2026-105312 Advisory for fixed component versions and update guidance. Apply vendor-provided updates that scope the Console operator ServiceAccount to namespace-level permissions and validate image references.

Workarounds

  • Use OPA Gatekeeper or Kyverno to enforce an image allowlist on Console custom resources until a patched version is deployed.
  • Reduce the ClusterRole bound to the Console ServiceAccount to the minimum verbs required, or replace cluster-wide bindings with namespace-scoped RoleBindings.
  • Disable automatic ServiceAccount token projection for Console-managed pods where feasible.
bash
# Example Kyverno policy enforcing an image allowlist on Console custom resources
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: restrict-console-image
spec:
  validationFailureAction: Enforce
  rules:
    - name: allowed-registries
      match:
        any:
          - resources:
              kinds:
                - Console
      validate:
        message: "Console spec.containers.api.spec.image must come from an approved registry"
        pattern:
          spec:
            containers:
              api:
                spec:
                  image: "registry.internal.example.com/*"

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.