# CVE-2026-105311: Console-operator: streams for apache kafka console: cross-namespace kafkauser secret exfiltration via confused deputy

Status: published. Published: 2026-10-20. Updated: 2026-11-03.

The StreamsHub Console operator acts as a confused deputy: a Kubernetes tenant with permission to create a Console custom resource can set spec.kafkaClusters[].credentials.kafkaUser.namespace to any namespace. The operator, running with cluster-wide Secrets RBAC, reads the victim-namespace KafkaUser Secret (SASL credentials or TLS private keys) and writes the plaintext material into a Secret in the attacker's namespace. No same-namespace check or allowlist exists anywhere in the code path.

## Remediation

- workaround: 1. Restrict Console CR RBAC — remove create/update verbs on consoles.console.streamshub.github.com from tenant-facing roles. Only trusted cluster administrators should manage Console CRs.
2. Audit existing Console CRs — review all Console CRs for kafkaUser.namespace fields pointing outside the CR's own namespace.
3. Network policy (defense-in-depth) — apply NetworkPolicy to restrict operator pod egress.

--- 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 enforce strict same-namespace boundary validation on KafkaUser credentials namespace references in Console Operator custom resources to prevent cross-namespace Secret reads: upgrade to the fixed Console Operator builds, which enforce an assertNamespaceAllowed() guard with a same-namespace default check when reading KafkaUser namespace configuration, closing all 2 injection vectors (Console custom resource namespace manipulation, cross-namespace Secret reference). Until patched, this is a concern on Kubernetes clusters running Console Operator where non-admin users have create or update permissions on Console custom resources, so Remove create and update permissions on Console custom resources from tenant roles and audit existing custom resources for kafkaUser.namespace values pointing outside their own namespace. As a compensating measure, Configure Kubernetes API server audit logging to record Console custom resource modifications and cross-namespace Secret read operations performed by the operator service account. These controls limit blast radius and contain exploitation, but they do not fix the underlying confused deputy cross-namespace access defect — apply the upstream patch to fully remediate.

Highest-impact CME: CME-711 Admission Controller Policy Enforcement (OPA/Gatekeeper/Kyverno) (high) (source: CNA: redhat)

## Affected products and versions

- Red Hat / StreamsHub Console for Apache Kafka® (console): ≥ 0.2.0; < 0.12.10 (affected, semver); ≥ 0.13.0; < 0.14.2 (affected, semver). Source: CNA: redhat
- Red Hat / streams for Apache Kafka 2 (console-operator): Version range not reported. Source: CNA: redhat
- Red Hat / streams for Apache Kafka 3 (console-operator): Version range not reported. Source: CNA: redhat

## Severity and prioritization

- CVSS 3.1: 7.7 (high); CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N; source: CNA: redhat

- CVSS 3.1: 7.7 (high); CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N; source: NVD: secalert@redhat.com

- CISA KEV: No listing in collected sources

- EPSS: 0.30% as of 2026-11-03; percentile 22.33%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: CWE-441

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://access.redhat.com/security/cve/CVE-2026-105311 (CNA: redhat; vdb-entry, x_refsource_REDHAT)

- https://bugzilla.redhat.com/show_bug.cgi?id=2510875 (CNA: redhat; issue-tracking, x_refsource_REDHAT)

- https://access.redhat.com/security/cve/CVE-2026-105311 (secalert@redhat.com)

- https://bugzilla.redhat.com/show_bug.cgi?id=2510875 (secalert@redhat.com)

## Provenance

- CNA: redhat: https://www.cve.org/CVERecord?id=CVE-2026-105311; retrieved 2026-11-03; source updated 2026-11-03

- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-105311; retrieved 2026-11-03; source updated 2026-11-03

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-105311; retrieved 2026-11-03; source updated Not reported

Revision: 4902176dd3bd19b1420d129ea7e17cb7051ca961773346063c85c2076280134d

Canonical: https://y2.dev/cve/CVE-2026-105311

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.