Skip to main content
Vulnerability Database/CVE-2026-93860

CVE-2026-93860: OpenStack Mistral Auth Bypass Vulnerability

CVE-2026-93860 is an authentication bypass flaw in OpenStack Mistral that allows any valid token holder to control maintenance state. This post covers the technical details, affected versions, impact, and mitigation.

Published:

CVE-2026-93860 Overview

CVE-2026-93860 is a missing authorization vulnerability [CWE-862] in OpenStack Mistral through version 23.0.0. The /v2/maintenance API controller clears the request context and invokes the maintenance service directly without enforcing any policy checks. Any user holding a valid Mistral token can read and modify the cluster-wide maintenance state, regardless of their assigned role. An attacker who sets the state to PAUSED halts processing of new workflow and execution objects across every tenant project until an operator manually restores service.

Critical Impact

A low-privileged tenant user can trigger a cluster-wide denial of service against the Mistral workflow service, stopping all workflow execution for every project until administrator intervention.

Affected Products

  • OpenStack Mistral through 23.0.0
  • Deployments exposing the Mistral /v2/maintenance API endpoint
  • Multi-tenant OpenStack clouds relying on Mistral for workflow orchestration

Discovery Timeline

  • 2026-10-08 - CVE-2026-93860 published to NVD
  • 2026-10-09 - Last updated in NVD database

Technical Details for CVE-2026-93860

Vulnerability Analysis

OpenStack Mistral is the workflow-as-a-service component used to orchestrate complex, long-running tasks across OpenStack projects. The /v2/maintenance API endpoint controls a cluster-wide state flag that governs whether Mistral engines accept new workflow and execution objects.

The controller handling this endpoint strips the authenticated request context before dispatching the call to the maintenance service. As a result, Mistral's oslo.policy enforcement layer never evaluates whether the caller holds an administrative role. The endpoint accepts GET and PUT requests from any token holder, including unprivileged tenant users with the member role.

Setting the maintenance state to PAUSED suspends processing of new workflow and execution objects for all projects in the cloud. The disruption persists until an operator with console access restores the RUNNING state. The issue aligns with CWE-862 Missing Authorization.

Root Cause

The root cause is the deliberate clearing of the request context inside the maintenance API controller before invoking the backend service. By discarding the authenticated principal, the controller bypasses the role-based access control (RBAC) layer that governs every other Mistral v2 endpoint. No policy rule is evaluated against the caller, so Mistral treats the request as privileged.

Attack Vector

Exploitation requires only a valid Keystone-issued Mistral token. An attacker who compromises any tenant account, or who legitimately holds a tenant role in a multi-tenant cloud, can issue a PUT request to /v2/maintenance with the state set to PAUSED. The request succeeds without triggering an authorization error. All workflow executions across the cluster then stall until an operator with direct service access reverts the state.

The vulnerability is network-reachable wherever the Mistral API is exposed to tenants, including the public API endpoint commonly listed in the Keystone service catalog. See the OpenStack Security Advisory OSSA-2026-044 and the Launchpad Bug Report #2162789 for upstream details.

Detect Identity Attacks the Moment Authentication Fails

Singularity™ Identity surfaces credential misuse, lateral movement, and privilege escalation in real time, so you can contain the breach before it spreads.

Stop Identity Attacks

Detection Methods for CVE-2026-93860

Indicators of Compromise

  • HTTP PUT requests to the /v2/maintenance endpoint originating from non-administrative tenant accounts.
  • Mistral engine logs showing a transition of the cluster maintenance state to PAUSED without a corresponding operator change ticket.
  • Workflow executions stuck in IDLE or queued states across multiple unrelated projects at the same time.

Detection Strategies

  • Parse Mistral API access logs for requests to /v2/maintenance and alert on any caller whose token is not associated with the admin role.
  • Correlate Keystone token issuance events with subsequent /v2/maintenance calls to identify the tenant source of the state change.
  • Baseline the expected rate of maintenance state transitions, which should be near zero, and alert on any deviation.

Monitoring Recommendations

  • Forward Mistral API, engine, and executor logs to a centralized analytics platform for cross-project correlation.
  • Monitor workflow throughput per project and raise an alert when all projects simultaneously report zero new executions.
  • Track the current value of the cluster maintenance state as a service health metric alongside Mistral uptime checks.

How to Mitigate CVE-2026-93860

Immediate Actions Required

  • Apply the fix referenced in OSSA-2026-044 to all Mistral API nodes once published by the OpenStack Vulnerability Management Team.
  • Restrict network access to the Mistral API endpoint so that only trusted automation hosts and administrators can reach /v2/maintenance.
  • Audit recent Mistral logs for unauthorized maintenance state changes and reset the state to RUNNING if required.

Patch Information

The OpenStack project tracks the fix under Launchpad Bug #2162789 and OSSA-2026-044. Operators should upgrade Mistral past 23.0.0 to the version indicated in the advisory and verify that the maintenance controller enforces oslo.policy checks on both read and write operations.

Workarounds

  • Place an authenticating reverse proxy in front of the Mistral API that rejects requests to /v2/maintenance unless the caller presents an administrator token.
  • Remove the /v2/maintenance route from the API paste pipeline on tenant-facing API nodes until the patch is deployed.
  • Issue scoped tokens with reduced lifetimes to limit the window in which a compromised tenant credential can trigger the issue.
bash
# Example HAProxy ACL blocking tenant access to the maintenance endpoint
frontend mistral_api
    bind *:8989
    acl is_maintenance path_beg /v2/maintenance
    acl is_admin_src  src 10.0.0.0/24
    http-request deny if is_maintenance !is_admin_src
    default_backend mistral_api_backend

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.