Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain adjacent-network access to Cruise Control port 9090
-
DeliveryCraft POST to /kafkacruisecontrol/x/rebalance
-
ExploitBypass constraint via path-filename normalization
-
ExecutionDispatch to unauthenticated admin endpoint
-
ImpactTrigger cluster rebalance or disruption
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires network reachability to the Cruise Control REST API (default port 9090) from an adjacent network position (AV:A) - not internet-wide access. The flaw is present because Jetty's ConstraintSecurityHandler registers constraints only on exact path specs with no catch-all wildcard and without setDenyUncoveredHttpMethods(true), and the servlet normalizes the request path using Path.of(pathInfo).getFileName(), which strips leading segments and trailing slashes. The primary LIMITING factor is deployment: in Red Hat AMQ Streams, the Strimzi operator's NetworkPolicy restricts port 9090 to operator pods only, so a default Strimzi deployment is not reachable by ordinary workloads - exploitation realistically requires Cruise Control to be exposed outside that NetworkPolicy, the NetworkPolicy to be disabled/misconfigured, or attacker presence within the operator network path. No user interaction or authentication is required once the port is reachable. |
| Impact | This is a genuine authentication bypass (CWE-287) in Cruise Control's Jetty security handling, where exact-path security constraints combined with servlet path normalization via Path.of(pathInfo).getFileName() allow all 15 admin endpoints to be reached without authentication. The provided CVSS 3.1 vector (AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 8.8) signals an easily exploitable, unauthenticated, high-impact flaw - but note AV:A (Adjacent), NOT AV:N (Network), which materially constrains reach: the attacker must already be on the same network segment/broadcast domain as the Cruise Control port (9090), not arbitrarily remote across the internet. The most important mitigating signal comes from the description itself: in Red Hat AMQ Streams, the Strimzi operator's NetworkPolicy restricts port 9090 to operator pods only, which Red Hat uses to downgrade effective severity to 'Important' rather than Critical. No EPSS score, KEV listing, SSVC decision, or POC was provided in the input; absent those, there is no evidence of active exploitation or published exploit code. Net assessment: a real, high-impact logic flaw worth patching, but real-world risk in a default Strimzi/AMQ Streams deployment is bounded by the NetworkPolicy and the Adjacent attack vector, so prioritize it for clusters where Cruise Control is exposed beyond operator pods or where the NetworkPolicy is not enforced. |
| Exploit ScenarioDerived | An attacker with access to the network segment where Cruise Control listens (port 9090) sends a crafted request such as POST /kafkacruisecontrol/x/rebalance; because the servlet strips leading path segments to just the filename, the request evades the exact-path security constraint yet still dispatches to the privileged admin handler. With no authentication required (PR:N), the attacker can then invoke any of the 15 admin endpoints to trigger cluster rebalancing or other disruptive operations. No public exploit identified at time of analysis, so this scenario is derived from the described mechanism rather than observed in-the-wild activity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Authentication bypass in Cruise Control (Red Hat Streams for Apache Kafka 2.x and 3.x) lets adjacent-network attackers reach all 15 administrative REST endpoints without credentials by abusing exact-path Jetty security constraints and servlet path normalization. The CVSS 3.1 score is 8.8 (AV:A/AC:L/PR:N/UI:N), but in AMQ Streams the Strimzi operator NetworkPolicy limits Cruise Control port 9090 to operator pods, so realistic exposure requires that policy to be absent, disabled, or misconfigured. No public exploit was identified at time of analysis.
RemediationAI
No vendor-released patch was identified at time of analysis, so prioritize exposure reduction while monitoring the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-105949 and Bugzilla at https://bugzilla.redhat.com/show_bug.cgi?id=2510878 for updated builds. Verify and enforce the Strimzi operator NetworkPolicy that restricts Cruise Control port 9090 to operator pods only; do not expose 9090 through ingress, routes, LoadBalancer services, or host networking. In custom or non-Strimzi deployments, apply firewall or network-policy allowlists so only trusted operator/admin hosts can reach 9090, accepting that this may break external administrative clients, monitoring integrations, or rebalancing automation that rely on direct API access. If Cruise Control is maintained from source, add a catch-all Jetty security constraint and enable setDenyUncoveredHttpMethods(true) as a code-level hardening measure, with regression testing because denying uncovered methods can break legitimate endpoints. Do not rely solely on path-based WAF rules, since the servlet normalization strips leading segments and trailing slashes.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Cruise Control uses Jetty's ConstraintSecurityHandler for authentication and authorization on its REST API. The handler registers security constraints only on exact path specifications, with no catch-all wildcard constraint and without calling setDenyUncoveredHttpMethods(true), so paths that do not match an exact constraint can be treated as uncovered. The servlet then normalizes the request path using Path.of(pathInfo).getFileName(), which strips leading path segments and trailing slashes; a request such as POST /kafkacruisecontrol/x/rebalance can therefore bypass authentication while still dispatching to an administrative endpoint. This is CWE-287 (Improper Authentication), and the affected CPE entries are Red Hat Streams for Apache Kafka 2 and Red Hat Streams for Apache Kafka 3. The CVSS vector AV:A indicates the practical attack surface is adjacent network reachability to the Cruise Control REST API, typically port 9090, rather than internet-wide exposure. In AMQ Streams deployments, the Strimzi operator's NetworkPolicy restricting port 9090 to operator pods is the main limiting control.
Know when Streams For Apache Kafka 2 gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Adjacent vector reflects port 9090 reachability inside the cluster network; PR:N because the path-normalization flaw bypasses auth entirely, and admin endpoints yield full C/I/A impact.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
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.
Executive ViewAI
A high-severity authentication bypass in Cruise Control, distributed with Red Hat Streams for Apache Kafka 2.x and 3.x, allows an attacker on an adjacent network to reach all administrative REST endpoints without credentials, effectively taking control of Kafka rebalancing and cluster operations. No vendor patch is available, so the practical security boundary today is the Strimzi operator's NetworkPolicy that isolates Cruise Control port 9090 to operator pods; any cluster where that policy is missing, disabled, or misconfigured is directly exposed. Leadership should treat this as a configuration-assurance problem across the Kafka estate, because the vulnerability's real-world blast radius depends entirely on whether network isolation has been maintained.
No vendor-released patch identified at time of analysis. Enforce and verify the Strimzi operator-managed NetworkPolicy that restricts Cruise Control port 9090 to operator pods only; segment the adjacent network; disable Cruise Control where isolation cannot be guaranteed; monitor and alert on access to Cruise Control administrative REST endpoints.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Affected Products (CPE)CVE.org
More in Streams For Apache Kafka 2
View allCross-tenant privilege escalation in StreamsHub Console for Apache Kafka allows an authenticated Kubernetes tenant that
Credential theft in multi-tenant Red Hat StreamsHub Console for Apache Kafka and Streams for Apache Kafka 2/3 deployment
ServiceAccount token exfiltration in the StreamsHub Console for Apache Kafka lets a user who already holds RBAC permissi
EUVD-2026-104965
GHSA-ggqh-85g7-w56q
NVD
CVE.org
EPSS
VulDB
Exploit-DB