CVE-2026-105311 (GCVE-0-2026-105311)
Vulnerability from cvelistv5 – Published: 2026-10-20 11:30 – Updated: 2026-10-21 20:44
VLAI
EPSS
VEX
Title
Console-operator: streams for apache kafka console: cross-namespace kafkauser secret exfiltration via confused deputy
Summary
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.
Severity
7.7 (High)
SSVC
Exploitation: none
Automatable: no
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-21 20:44 UTC
CWE
- CWE-441 - Unintended Proxy or Intermediary ('Confused Deputy')
Assigner
References
2 references
| URL | Tags |
|---|---|
| https://access.redhat.com/security/cve/CVE-2026-105311 | vdb-entryx_refsource_REDHAT |
| https://bugzilla.redhat.com/show_bug.cgi?id=2510875 | issue-trackingx_refsource_REDHAT |
Impacted products
3 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Red Hat | StreamsHub Console for Apache Kafka® |
Affected:
0.2.0 , < 0.12.10
(semver)
Affected: 0.13.0 , < 0.14.2 (semver) |
guessed | |
| Red Hat | streams for Apache Kafka 2 |
cpe:/a:redhat:amq_streams:2
|
||
| Red Hat | streams for Apache Kafka 3 |
cpe:/a:redhat:amq_streams:3
|
Date Public
2026-10-20 11:00
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-105311",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-21T20:44:04.335844Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T20:44:12.089Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"collectionURL": "https://github.com/streamshub/console",
"defaultStatus": "unaffected",
"packageName": "console",
"product": "StreamsHub Console for Apache Kafka\u00ae",
"vendor": "Red Hat",
"versions": [
{
"lessThan": "0.12.10",
"status": "affected",
"version": "0.2.0",
"versionType": "semver"
},
{
"lessThan": "0.14.2",
"status": "affected",
"version": "0.13.0",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"cpes": [
"cpe:/a:redhat:amq_streams:2"
],
"defaultStatus": "affected",
"packageName": "console-operator",
"product": "streams for Apache Kafka 2",
"vendor": "Red Hat"
},
{
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"cpes": [
"cpe:/a:redhat:amq_streams:3"
],
"defaultStatus": "affected",
"packageName": "console-operator",
"product": "streams for Apache Kafka 3",
"vendor": "Red Hat"
}
],
"datePublic": "2026-10-20T11:00:00.000Z",
"descriptions": [
{
"lang": "en",
"value": "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\u0027s namespace. No same-namespace check or allowlist exists anywhere in the code path."
}
],
"metrics": [
{
"other": {
"content": {
"namespace": "https://access.redhat.com/security/updates/classification/",
"value": "Important"
},
"type": "Red Hat severity rating"
}
},
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 7.7,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "CHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N",
"version": "3.1"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-441",
"description": "Unintended Proxy or Intermediary (\u0027Confused Deputy\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-20T22:33:30.497Z",
"orgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"shortName": "redhat"
},
"references": [
{
"tags": [
"vdb-entry",
"x_refsource_REDHAT"
],
"url": "https://access.redhat.com/security/cve/CVE-2026-105311"
},
{
"name": "RHBZ#2510875",
"tags": [
"issue-tracking",
"x_refsource_REDHAT"
],
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2510875"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-08-04T03:10:18.848Z",
"value": "Reported to Red Hat."
},
{
"lang": "en",
"time": "2026-10-20T11:00:00.000Z",
"value": "Made public."
}
],
"title": "Console-operator: streams for apache kafka console: cross-namespace kafkauser secret exfiltration via confused deputy",
"workarounds": [
{
"lang": "en",
"value": "1. Restrict Console CR RBAC \u2014 remove create/update verbs on consoles.console.streamshub.github.com from tenant-facing roles. Only trusted cluster administrators should manage Console CRs.\n2. Audit existing Console CRs \u2014 review all Console CRs for kafkaUser.namespace fields pointing outside the CR\u0027s own namespace.\n3. Network policy (defense-in-depth) \u2014 apply NetworkPolicy to restrict operator pod egress.\n\n--- CME Mitigation Guidance (2026-10-20) ---\nDisclaimer: 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.\n\nThe 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 \u2014 apply the upstream patch to fully remediate.\n\nHighest-impact CME: CME-711 Admission Controller Policy Enforcement (OPA/Gatekeeper/Kyverno) (high)"
}
],
"x_generator": {
"engine": "cvelib 1.8.0"
},
"x_redhatCweChain": "CWE-441: Unintended Proxy or Intermediary (\u0027Confused Deputy\u0027)"
}
},
"cveMetadata": {
"assignerOrgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"assignerShortName": "redhat",
"cveId": "CVE-2026-105311",
"datePublished": "2026-10-20T11:30:09.568Z",
"dateReserved": "2026-10-05T07:03:59.012Z",
"dateUpdated": "2026-10-21T20:44:12.089Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-105311",
"date": "2026-10-23",
"epss": "0.00274",
"percentile": "0.1882"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"collectionURL": "https://github.com/streamshub/console",
"defaultStatus": "unaffected",
"packageName": "console",
"product": "StreamsHub Console for Apache Kafka\u00ae",
"vendor": "Red Hat",
"versions": [
{
"lessThan": "0.12.10",
"status": "affected",
"version": "0.2.0",
"versionType": "semver"
},
{
"lessThan": "0.14.2",
"status": "affected",
"version": "0.13.0",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"cpes": [
"cpe:/a:redhat:amq_streams:2"
],
"defaultStatus": "affected",
"packageName": "console-operator",
"product": "streams for Apache Kafka 2",
"vendor": "Red Hat"
},
{
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"cpes": [
"cpe:/a:redhat:amq_streams:3"
],
"defaultStatus": "affected",
"packageName": "console-operator",
"product": "streams for Apache Kafka 3",
"vendor": "Red Hat"
}
],
"source": "secalert@redhat.com"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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\u0027s namespace. No same-namespace check or allowlist exists anywhere in the code path."
}
],
"id": "CVE-2026-105311",
"lastModified": "2026-10-21T21:17:44.883",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 7.7,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "CHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N",
"version": "3.1"
},
"exploitabilityScore": 3.1,
"impactScore": 4.0,
"source": "secalert@redhat.com",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-105311",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-21T20:44:04.335844Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-10-20T12:17:28.550",
"references": [
{
"source": "secalert@redhat.com",
"url": "https://access.redhat.com/security/cve/CVE-2026-105311"
},
{
"source": "secalert@redhat.com",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2510875"
}
],
"sourceIdentifier": "secalert@redhat.com",
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-441"
}
],
"source": "secalert@redhat.com",
"type": "Secondary"
}
]
}
},
"redhat_vex": {
"aggregate_severity": "Important",
"current_release_date": "2026-10-20T22:33:28+00:00",
"cve": "CVE-2026-105311",
"id": "CVE-2026-105311",
"initial_release_date": "2026-10-20T11:00:00+00:00",
"product_status:known_affected": "2",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "console-operator: Streams for Apache Kafka Console: cross-namespace KafkaUser Secret exfiltration via confused deputy",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-105311.json",
"version": "3"
},
"vulnrichment": {
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-105311",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-21T20:44:04.335844Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T20:44:08.899Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"collectionURL": "https://github.com/streamshub/console",
"defaultStatus": "unaffected",
"packageName": "console",
"product": "StreamsHub Console for Apache Kafka\u00ae",
"vendor": "Red Hat",
"versions": [
{
"lessThan": "0.12.10",
"status": "affected",
"version": "0.2.0",
"versionType": "semver"
},
{
"lessThan": "0.14.2",
"status": "affected",
"version": "0.13.0",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"cpes": [
"cpe:/a:redhat:amq_streams:2"
],
"defaultStatus": "affected",
"packageName": "console-operator",
"product": "streams for Apache Kafka 2",
"vendor": "Red Hat"
},
{
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"cpes": [
"cpe:/a:redhat:amq_streams:3"
],
"defaultStatus": "affected",
"packageName": "console-operator",
"product": "streams for Apache Kafka 3",
"vendor": "Red Hat"
}
],
"datePublic": "2026-10-20T11:00:00.000Z",
"descriptions": [
{
"lang": "en",
"value": "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\u0027s namespace. No same-namespace check or allowlist exists anywhere in the code path."
}
],
"metrics": [
{
"other": {
"content": {
"namespace": "https://access.redhat.com/security/updates/classification/",
"value": "Important"
},
"type": "Red Hat severity rating"
}
},
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 7.7,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "CHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N",
"version": "3.1"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-441",
"description": "Unintended Proxy or Intermediary (\u0027Confused Deputy\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-20T22:33:30.497Z",
"orgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"shortName": "redhat"
},
"references": [
{
"tags": [
"vdb-entry",
"x_refsource_REDHAT"
],
"url": "https://access.redhat.com/security/cve/CVE-2026-105311"
},
{
"name": "RHBZ#2510875",
"tags": [
"issue-tracking",
"x_refsource_REDHAT"
],
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2510875"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-08-04T03:10:18.848Z",
"value": "Reported to Red Hat."
},
{
"lang": "en",
"time": "2026-10-20T11:00:00.000Z",
"value": "Made public."
}
],
"title": "Console-operator: streams for apache kafka console: cross-namespace kafkauser secret exfiltration via confused deputy",
"workarounds": [
{
"lang": "en",
"value": "1. Restrict Console CR RBAC \u2014 remove create/update verbs on consoles.console.streamshub.github.com from tenant-facing roles. Only trusted cluster administrators should manage Console CRs.\n2. Audit existing Console CRs \u2014 review all Console CRs for kafkaUser.namespace fields pointing outside the CR\u0027s own namespace.\n3. Network policy (defense-in-depth) \u2014 apply NetworkPolicy to restrict operator pod egress.\n\n--- CME Mitigation Guidance (2026-10-20) ---\nDisclaimer: 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.\n\nThe 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 \u2014 apply the upstream patch to fully remediate.\n\nHighest-impact CME: CME-711 Admission Controller Policy Enforcement (OPA/Gatekeeper/Kyverno) (high)"
}
],
"x_generator": {
"engine": "cvelib 1.8.0"
},
"x_redhatCweChain": "CWE-441: Unintended Proxy or Intermediary (\u0027Confused Deputy\u0027)"
}
},
"cveMetadata": {
"assignerOrgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"assignerShortName": "redhat",
"cveId": "CVE-2026-105311",
"datePublished": "2026-10-20T11:30:09.568Z",
"dateReserved": "2026-10-05T07:03:59.012Z",
"dateUpdated": "2026-10-21T20:44:12.089Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
Loading…
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.