CVE-2026-105311 (GCVE-0-2026-105311)

Vulnerability from cvelistv5 – Published: 2026-10-20 11:30 – Updated: 2026-10-20 11:30
VLAI
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.
CWE
  • CWE-441 - Unintended Proxy or Intermediary ('Confused Deputy')
Assigner
redhat CNA under the redhat root
CNA scorecard B 82/100 over 1037 records in the last 180 days details
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
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 Create a notification for this product.
Red Hat streams for Apache Kafka 2     cpe:/a:redhat:amq_streams:2
Create a notification for this product.
Red Hat streams for Apache Kafka 3     cpe:/a:redhat:amq_streams:3
Create a notification for this product.
Date Public
2026-10-20 11:00
Show details on NVD website

{
  "containers": {
    "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-20T11:30:09.568Z",
        "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."
        }
      ],
      "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-20T11:30:09.568Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "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-20T15:03:59.857",
        "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": "Primary"
            }
          ]
        },
        "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": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Important",
      "current_release_date": "2026-10-20T13:08:20+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"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

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.

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

JSON
Events included in the timeline

Loading timeline…


    Loading…

    Loading…

    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.