Skip to main content

Cruise Control EUVDEUVD-2026-104965

| CVE-2026-105949 HIGH
Improper Authentication (CWE-287)
2026-10-20 redhat GHSA-ggqh-85g7-w56q
8.8
CVSS 3.1 · Vendor: redhat
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain adjacent-network access to Cruise Control port 9090
  2. Delivery
    Craft POST to /kafkacruisecontrol/x/rebalance
  3. Exploit
    Bypass constraint via path-filename normalization
  4. Execution
    Dispatch to unauthenticated admin endpoint
  5. Impact
    Trigger 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (redhat) PRIMARY 8.8 HIGH
AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

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.

3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (redhat).

CVSS VectorVendor: redhat

Attack Vector
Adjacent
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Medium
Optional component of widely-used Kafka distributions, not deployed everywhere
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Controlled
Automatable· derived
No
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Affected Products (CPE)CVE.org

cpe:2.3:a:red_hat:streams_for_apache_kafka_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:streams_for_apache_kafka_3:*:*:*:*:*:*:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy