Refine your search
4 vulnerabilities found for streams for Apache Kafka 2 by Red Hat
CVE-2026-105949 (GCVE-0-2026-105949)
Vulnerability from cvelistv5
Published
2026-10-20 11:30
Modified
2026-10-23 10:31
Severity ?
VLAI Severity ?
EPSS score ?
CWE
- CWE-287 - Improper Authentication
Summary
Cruise Control's Jetty ConstraintSecurityHandler registers security constraints on exact path specs without a catch-all wildcard constraint and without calling setDenyUncoveredHttpMethods(true). The servlet routes requests using Path.of(pathInfo).getFileName(), which strips all leading segments and trailing slashes. Requests like POST /kafkacruisecontrol/x/rebalance bypass authentication entirely but still dispatch to admin endpoints. All 15 admin endpoints become reachable without authentication. In AMQ Streams, the Strimzi operator's NetworkPolicy restricts Cruise Control port 9090 to operator pods only, reducing effective severity to Important.
References
| URL | Tags | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||
Impacted products
| Vendor | Product | Version | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Version: 2.0.82 ≤ |
||||||||||||||
|
||||||||||||||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-105949",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-22T21:20:56.339490Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-22T21:21:08.947Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"collectionURL": "https://github.com/cruise-control-for-kafka/cruise-control",
"defaultStatus": "unaffected",
"packageName": "Cruise Control for Apache Kafka",
"versions": [
{
"lessThan": "3.1.0",
"status": "affected",
"version": "2.0.82",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"cpes": [
"cpe:/a:redhat:amq_streams:2"
],
"defaultStatus": "affected",
"packageName": "cruise-control",
"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": "cruise-control",
"product": "streams for Apache Kafka 3",
"vendor": "Red Hat"
}
],
"datePublic": "2026-10-20T11:00:00.000Z",
"descriptions": [
{
"lang": "en",
"value": "Cruise Control\u0027s Jetty ConstraintSecurityHandler registers security constraints on exact path specs without a catch-all wildcard constraint and without calling setDenyUncoveredHttpMethods(true). The servlet routes requests using Path.of(pathInfo).getFileName(), which strips all leading segments and trailing slashes. Requests like POST /kafkacruisecontrol/x/rebalance bypass authentication entirely but still dispatch to admin endpoints. All 15 admin endpoints become reachable without authentication. In AMQ Streams, the Strimzi operator\u0027s NetworkPolicy restricts Cruise Control port 9090 to operator pods only, reducing effective severity to Important."
}
],
"metrics": [
{
"other": {
"content": {
"namespace": "https://access.redhat.com/security/updates/classification/",
"value": "Important"
},
"type": "Red Hat severity rating"
}
},
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "ADJACENT_NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 8.8,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-287",
"description": "Improper Authentication",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-23T10:31:59.027Z",
"orgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"shortName": "redhat"
},
"references": [
{
"tags": [
"vdb-entry",
"x_refsource_REDHAT"
],
"url": "https://access.redhat.com/security/cve/CVE-2026-105949"
},
{
"name": "RHBZ#2510878",
"tags": [
"issue-tracking",
"x_refsource_REDHAT"
],
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2510878"
},
{
"url": "https://github.com/cruise-control-for-kafka/cruise-control/commit/0680880be8483e87a39832de807b68d5e9918325"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-08-04T03:32:18.261Z",
"value": "Reported to Red Hat."
},
{
"lang": "en",
"time": "2026-10-20T11:00:00.000Z",
"value": "Made public."
}
],
"title": "Cruise-control: streams for apache kafka cruise control: authentication bypass via extra path segment allows unauthenticated access to all admin endpoints",
"workarounds": [
{
"lang": "en",
"value": "1. Verify Strimzi NetworkPolicy exists restricting CC :9090 to operator pods\n2. Do not expose CC :9090 via Ingress or Route \u2014 must not be externally accessible\n3. Confirm TLS is enabled on the CC HTTP endpoint (Strimzi default)\n4. For standalone CC: deploy path-normalizing reverse proxy and restrict :9090 via firewall\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 eliminate the path discrepancy between Jetty security constraints and ParameterUtils routing by canonicalizing URI paths prior to authorization evaluation: upgrade to the fixed Cruise Control/Kafka Relations Sink/Playbook Dispatcher/Cloudservices/Kafka Relations Sink/Redhat User Workloads/Playbook Dispatcher Connect builds, which canonicalizes request URI paths prior to authorization and registers wildcard security constraints or denies uncovered HTTP methods in Jetty, closing prepending an arbitrary path segment to administrative endpoint URIs. Until patched, this is a concern on Cruise Control deployments exposing HTTP port 9090 without network policy restrictions or reverse proxy path filtering, so Enforce Strimzi NetworkPolicy restricting port 9090 access strictly to operator pods, prohibit external exposure through Ingress or Routes, and deploy a path-normalizing reverse proxy or firewall rules for standalone setups. As a compensating measure, Require authenticated identity verification at the network boundary using a zero trust gateway or identity-aware proxy before traffic reaches port 9090, Restrict network access to Cruise Control port 9090 using host-based firewalls like firewalld or nftables, Bind the Cruise Control service to localhost to ensure all incoming traffic passes through a local tunnel or controlling reverse proxy, Enforce URL path authorization rules at an upstream reverse proxy to block unmapped or manipulated URI paths, and Forward Cruise Control administrative endpoint invocations to a SIEM to detect unauthorized execution of admin actions. These controls limit blast radius and contain exploitation, but they do not fix the underlying path discrepancy authentication bypass defect \u2014 apply the upstream patch to fully remediate.\n\nHighest-impact CME: CME-921 URL Request Path Canonicalization Before Authorization (high)"
}
],
"x_generator": {
"engine": "cvelib 1.8.0"
},
"x_redhatCweChain": "CWE-287: Improper Authentication"
}
},
"cveMetadata": {
"assignerOrgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"assignerShortName": "redhat",
"cveId": "CVE-2026-105949",
"datePublished": "2026-10-20T11:30:29.296Z",
"dateReserved": "2026-10-06T07:57:58.570Z",
"dateUpdated": "2026-10-23T10:31:59.027Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-105312 (GCVE-0-2026-105312)
Vulnerability from cvelistv5
Published
2026-10-20 11:30
Modified
2026-10-20 22:33
Severity ?
VLAI Severity ?
EPSS score ?
CWE
- CWE-269 - Improper Privilege Management
Summary
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.
References
| URL | Tags | |||||||
|---|---|---|---|---|---|---|---|---|
|
||||||||
Impacted products
| Vendor | Product | Version | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Red Hat | StreamsHub Console for Apache Kafka® |
Version: 0.2.0 ≤ Version: 0.13.0 ≤ |
||||||||||||
|
||||||||||||||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-105312",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-20T15:16:22.650365Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-20T16:06:30.224Z",
"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": "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\u0027s code reads the projected SA token and gains cross-tenant Strimzi control-plane read+write access."
}
],
"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": "LOW",
"baseScore": 9.9,
"baseSeverity": "CRITICAL",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "LOW",
"scope": "CHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L",
"version": "3.1"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-269",
"description": "Improper Privilege Management",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-20T22:33:57.620Z",
"orgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"shortName": "redhat"
},
"references": [
{
"tags": [
"vdb-entry",
"x_refsource_REDHAT"
],
"url": "https://access.redhat.com/security/cve/CVE-2026-105312"
},
{
"name": "RHBZ#2510863",
"tags": [
"issue-tracking",
"x_refsource_REDHAT"
],
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2510863"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-08-04T01:31:04.894Z",
"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: tenant-controlled container image on clusterrole-bound pod enables namespace-to-cluster privilege escalation",
"workarounds": [
{
"lang": "en",
"value": "1. Restrict Console CR RBAC \u2014 remove create/update/patch verbs on consoles.console.streamshub.github.com from tenant-level Roles. Only cluster administrators should manage Console CRs.\n2. Deploy admission webhook \u2014 use OPA/Gatekeeper or Kyverno policy to validate spec.containers.api.spec.image against a trusted registry allowlist.\n3. Apply network policies \u2014 restrict console-api pod egress to only required endpoints.\n4. Single-tenant deployment \u2014 deploy the Console operator where only trusted administrators manage Console CRs.\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 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 \u2014 single-tenant Kubernetes clusters where only cluster administrators manage Console custom resources are unaffected \u2014 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 \u2014 apply the upstream patch to fully remediate.\n\nHighest-impact CME: CME-206 Network Policy (Kubernetes) (medium)"
}
],
"x_generator": {
"engine": "cvelib 1.8.0"
},
"x_redhatCweChain": "CWE-269: Improper Privilege Management"
}
},
"cveMetadata": {
"assignerOrgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"assignerShortName": "redhat",
"cveId": "CVE-2026-105312",
"datePublished": "2026-10-20T11:30:20.850Z",
"dateReserved": "2026-10-05T07:03:59.012Z",
"dateUpdated": "2026-10-20T22:33:57.620Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-105311 (GCVE-0-2026-105311)
Vulnerability from cvelistv5
Published
2026-10-20 11:30
Modified
2026-10-21 20:44
Severity ?
VLAI Severity ?
EPSS score ?
CWE
- CWE-441 - Unintended Proxy or Intermediary ('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.
References
| URL | Tags | |||||||
|---|---|---|---|---|---|---|---|---|
|
||||||||
Impacted products
| Vendor | Product | Version | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Red Hat | StreamsHub Console for Apache Kafka® |
Version: 0.2.0 ≤ Version: 0.13.0 ≤ |
||||||||||||
|
||||||||||||||
{
"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"
}
CVE-2026-96740 (GCVE-0-2026-96740)
Vulnerability from cvelistv5
Published
2026-09-28 17:27
Modified
2026-10-05 08:56
Severity ?
VLAI Severity ?
EPSS score ?
CWE
- CWE-470 - Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')
Summary
A flaw was found in the StreamsHub Console for Apache Kafka. Tenant-supplied Kafka client properties from the Console custom resource are copied into the console-api AdminClient configuration without filtering security-sensitive keys, allowing a Console CR author to set config.providers and bootstrap.servers to exfiltrate the console-api ServiceAccount token to an attacker-controlled broker.
References
| URL | Tags | |
|---|---|---|
|
|
||
Impacted products
| Vendor | Product | Version | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Red Hat | StreamsHub Console for Apache Kafka® |
Version: 0.2.1 ≤ Version: 0.13.0 ≤ |
||||||||||||
|
||||||||||||||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-96740",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-09-30T19:41:57.966653Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-09-30T20:11:12.132Z",
"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.9",
"status": "affected",
"version": "0.2.1",
"versionType": "semver"
},
{
"lessThan": "0.14.1",
"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-09-28T17:05:21.306Z",
"descriptions": [
{
"lang": "en",
"value": "A flaw was found in the StreamsHub Console for Apache Kafka. Tenant-supplied Kafka client properties from the Console custom resource are copied into the console-api AdminClient configuration without filtering security-sensitive keys, allowing a Console CR author to set config.providers and bootstrap.servers to exfiltrate the console-api ServiceAccount token to an attacker-controlled broker."
}
],
"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": 6.5,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-470",
"description": "Use of Externally-Controlled Input to Select Classes or Code (\u0027Unsafe Reflection\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-05T08:56:02.300Z",
"orgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"shortName": "redhat"
},
"references": [
{
"tags": [
"vdb-entry",
"x_refsource_REDHAT"
],
"url": "https://access.redhat.com/security/cve/CVE-2026-96740"
},
{
"name": "RHBZ#2539427",
"tags": [
"issue-tracking",
"x_refsource_REDHAT"
],
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2539427"
},
{
"url": "https://github.com/advisories/GHSA-3rpr-3qjq-fg52"
},
{
"url": "https://github.com/streamshub/console/commit/d45897e12"
},
{
"url": "https://github.com/streamshub/console/commit/ef13971"
},
{
"url": "https://github.com/streamshub/console/pull/2957"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-09-23T14:18:04.405Z",
"value": "Reported to Red Hat."
},
{
"lang": "en",
"time": "2026-09-28T17:05:21.306Z",
"value": "Made public."
}
],
"title": "Streamshub/console: console-operator: streams for apache kafka console: unfiltered kafka client properties \u2192 sa-token exfiltration via config.providers",
"workarounds": [
{
"lang": "en",
"value": "Restrict `create`, `update`, and `patch` permissions for Console custom resources to trusted administrators only. Where supported, apply a NetworkPolicy to restrict Console API egress to approved Kafka broker endpoints. These controls reduce exposure to the reported ServiceAccount-credential disclosure path but do not replace the permanent fix, which is to filter security-sensitive Kafka client properties. Upgrade to a release containing the permanent fix when available."
}
],
"x_generator": {
"engine": "cvelib 1.8.0"
},
"x_redhatCweChain": "CWE-470: Use of Externally-Controlled Input to Select Classes or Code (\u0027Unsafe Reflection\u0027)"
}
},
"cveMetadata": {
"assignerOrgId": "53f830b8-0a3f-465b-8143-3b8a9948e749",
"assignerShortName": "redhat",
"cveId": "CVE-2026-96740",
"datePublished": "2026-09-28T17:27:44.240Z",
"dateReserved": "2026-09-23T15:44:19.471Z",
"dateUpdated": "2026-10-05T08:56:02.300Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}