LabRoundupColumnNews
blog/Articles/Critical Takeover Flaw in OpenStack Mistral: CVE-2026-41283 Lets Any Logged-In User Run Code
openstack-mistral-cve-2026-41283-policy-bypass-rce-cover-en

Critical Takeover Flaw in OpenStack Mistral: CVE-2026-41283 Lets Any Logged-In User Run Code

CVE-2026-41283: a 9.9-severity flaw in OpenStack Mistral lets any logged-in user run arbitrary code and steal cloud-wide service credentials. Patch now.

News Updated today
avatar-m-1

Makoto Horikawa

Backend Engineer / AWS / Django

2026.06.049 min5 views
Key takeaways

CVE-2026-41283: a 9.9-severity flaw in OpenStack Mistral lets any logged-in user run arbitrary code and steal cloud-wide service credentials. Patch now.

A near-top-severity flaw, rated 9.9, has been found in a component of OpenStack, the platform that companies and telecom carriers use to run their own private clouds. It is tracked as CVE-2026-41283. The affected part is Mistral, the component that handles "workflows" by chaining multiple steps together and running them automatically.

The frightening part is that no special admin rights are needed to abuse it. If you hold a single account that can simply log into the cloud, you can run a program of your own choosing on the server side. And from there, you may be able to steal the "service master keys" that operate the entire cloud. On June 3, 2026, the OpenStack project published fixes and the security advisory OSSA-2026-020.

What happens, in one line

In plain terms, this is a missing permission check. Mistral exposes several APIs that accept commands from the outside, and on some of them the gate that verifies "is this person allowed to do this?" was not working. Operations that should only be available to administrators were going through for ordinary users too.

Because that gate is missing, an attacker can do two things. First, create a "public resource" that anyone can use. Second, plant their own program in it and have it run on Mistral's worker servers (the executor workers). Once the program runs, it can read whatever information that server holds. The prime target is the credentials that link the services together (the passwords and tokens of service accounts).

CVE-2026-41283: From a broken authorization check to arbitrary code execution

The formal classification is CWE-863 (Incorrect Authorization). The U.S. National Vulnerability Database (NVD) scored the severity at 9.9 out of 10 (Critical). The only prerequisites are network access and a low-privilege account, and no user interaction is required. Any environment that exposes Mistral's API to outside parties or to tenants is directly affected. "Arbitrary code execution" means a direct path to taking over the server, the worst kind of flaw for a cloud platform.

What are OpenStack and Mistral, exactly?

OpenStack is, in a word, "software for building an entire AWS-like cloud inside your own company or data center." It manages servers, storage, and networks together, and users can spin up or tear down virtual machines whenever they need them. It is widely used in places that rarely show up in the spotlight: telecom infrastructure, university and research computing, and the private clouds of government agencies and large enterprises. The fact that one of the reporters is an engineer at major cloud provider OVHcloud speaks to how broad the user base is.

Within OpenStack, Mistral is the component that takes care of "automating set procedures." For example, if you write a sequence such as "launch five virtual machines, push in their configuration, and notify when done" as a procedure (a workflow) in the YAML format, Mistral runs it in order. Because TripleO, OpenStack's own deployment tooling, has been built on top of Mistral, it is embedded as the cloud's "behind-the-scenes automation engine" in more than a few setups.

The part that actually runs those procedures is the executor worker. Because it coordinates with other services to get work done, the worker keeps the connection credentials for each service close at hand. In other words, the Mistral worker is both the hub of cloud automation and a safe where the master keys are kept. This vulnerability is the story of the gate in front of that safe being left wide open.

The essentials in one minute

Before the details, here are the key points in a table. What matters most is checking whether you run Mistral and whether ordinary users can reach its API. If your setup keeps it internal and admin-only, the risk of immediate takeover drops.

ItemDetails
CVE IDCVE-2026-41283 (advisory OSSA-2026-020)
Affected productOpenStack Mistral
(workflow service)
Severity9.9 / 10 (Critical, CVSS 3.1)
TypeIncorrect authorization (CWE-863)
→ arbitrary code execution
Attack prerequisitesNetwork access +
a logged-in ordinary account
Affected versions20.0.0 up to (not incl.) 20.1.1
/ 21.0.0 / 22.0.0
Fix20.1.1 and patches for each series
(released June 3, 2026)
Exploitation statusNot in KEV, no public PoC
(as of June 4, 2026)

The same "cross the permission wall after logging in" type of incident keeps recurring in identity and SSO products. Recent examples include the authentication bypass in the SSO platform Casdoor and the authorization bypass in the OTRS help-desk system. Mistral, in effect, did the same thing but at the scale of a cloud platform.

When a single ordinary account turns into the cloud's master keyring

The real danger here comes down to the fact that the entry point is not an "administrator" but "anyone who can log in." The people who come after it are contractor engineers about to leave on bad terms, intruders who walked in holding a stolen API token, and malicious tenants sharing the very same cloud. At first they can touch only their own small privileges, but through Mistral's open API the OS rights of the executor worker, the passwords and tokens of the service accounts that connect each service, the contents of other tenants' workflows, and the connection details written inside them all come within reach. The moment they touch that broken API, a person who should hold nothing more than ordinary user rights walks away with the entire bundle of master keys that runs the cloud behind the scenes.

The stolen service keys become fuel for the next round of damage. With those keys the attacker walks, wearing a legitimate face, into the core services: Nova that runs virtual machines, Neutron that controls the network, and Cinder and Swift that hold stored data. From there they can break into other tenants' virtual machines to plant cryptocurrency miners, siphon out stored data wholesale, or hold business systems hostage for ransom. The cloud access itself then gets traded on underground markets and resold as an entry point for other criminal groups. With shared infrastructure, the carelessness of a single co-tenant account turns into damage for every unrelated customer riding on the same platform.

And the cleanup lands not on whoever used the flaw, but on the operator running the cloud and the internal IT department. If personal data leaks, regulators must be notified and affected individuals informed; explanations and compensation for co-tenant customers, SLA violations for downed services, and the reputational hit of "that platform is unsafe" all arrive at once. The number 9.9 only marks the ceiling of technical severity; the costs the operator actually carries are not on that scale. That is exactly why whether you can close this hole before an attacker finds it decides the safety of everyone sharing the platform.

Why it happened, from a technical view

According to the vendor's security advisory and the post to the public mailing list (oss-security), the root cause is that "several Mistral API endpoints did not enforce access policies." In OpenStack, each operation is normally governed by a policy that says "only people with this role are allowed" (authorization rules based on oslo.policy). On some Mistral endpoints, that check was missing, so anyone holding a token could push the operation through.

The attack flow goes like this. First, use an endpoint with the missing authorization check to create a "public resource" that anyone can reference and use. Because Mistral workflows and actions have mechanisms that invoke external commands and scripts internally, an attacker can embed their own code in that public resource. The embedded code then runs on the executor worker that actually processes the workflow. Since the worker keeps credentials at hand to coordinate with each service in the cloud, the attacker can extract service-account credentials from there. That is the chain.

The pattern of "an externally supplied definition runs as-is on the server" is nothing new. The unauthenticated RCE in the AI tool Langflow, the deserialization RCE in the networking library Apache MINA, and the unauthenticated RCE in the file-sharing server Samba all turned insufficient input validation into arbitrary code execution. What differs is that in Mistral's case the execution target is the management layer of the entire cloud. No proof-of-concept (PoC) is public yet, but precisely because the structure is simple, reproduction should be assumed to be not particularly hard.

Affected versions and the state of the fix

Here are the affected ranges shown in advisory OSSA-2026-020 and the corresponding OpenStack release series. OpenStack ships releases with code names such as "Epoxy" and "Flamingo" every six months, and Mistral's version numbers map to them.

OpenStack releaseAffected Mistral versionAction
2025.1 (Epoxy)20.0.0 up to (not incl.) 20.1.1Update to 20.1.1
2025.2 (Flamingo)21.0.0Apply the series fix patch
2026.1 (Gazpacho)22.0.0Apply the series fix patch
2026.2 (Hibiscus)Development branchFix already merged

The fixes were released on June 3, 2026 simultaneously for all four stable series above (2025.1 through 2026.2). Environments on the 20.x series should move to 20.1.1, and those on 21.0.0 or 22.0.0 should update to the fixed release in their respective series. If you run a distribution build such as Red Hat OpenStack Platform, wait for and apply the package update distributed by your vendor. The Launchpad bug number is 2147178.

What to do right now

The top priority is to update Mistral. Moving to 20.1.1 or the fixed release in the series you use restores the missing authorization checks. As a stopgap while you arrange the update, narrow down who can reach the Mistral API. Specifically, place the Mistral API where it cannot be touched directly from the internet or from general tenants, and use firewalls or security groups to allow access only from a trusted management network or orchestration platform. The advisory also states that "deployments exposing the Mistral API are affected," so reviewing your exposure directly lowers the probability of compromise.

You should also check whether you have already been hit. In Mistral's logs, look for the creation of unfamiliar public workflows and actions, API calls from unexpected accounts, and suspicious process launches on the executor workers. If it was abused, the thing to watch most is secondary damage on the assumption that "service-account credentials have already been stolen." On that assumption, rotate the passwords and tokens of the affected service accounts and trace lateral movement in Keystone's authentication logs as one set. The difficulty of cleaning up after a key or token leaks is exactly what we covered in the case of the private-key exposure in the Cloud Foundry authentication server. The way stolen service credentials get repurposed as a stepping stone into other systems is contiguous with chains of attack that pass through open-source components, and the more widely used an open-source base like Mistral is, the harder its blast radius is to gauge.

Detection and mitigation checkpoints

Here are the points for quickly judging how exposed your environment is, ordered by impact. They also help you decide the priority of the update work.

What to checkRisk level
Mistral API exposed to
general tenants / the outside
Most dangerous (update now)
Mistral running, but API
limited to the management network
Update needed (watch insider threats)
Not running an affected
version / not deployed
No direct impact

Be careful: "we limit the API to the management network, so we're safe" does not hold. The attack condition here is "a logged-in ordinary account," so abuse from insider-adjacent paths — contractors, co-tenants, or stolen tokens — succeeds. Even without external exposure, an update is required as long as you run an affected version. Note that as of June 4, 2026 this vulnerability is not listed in CISA's Known Exploited Vulnerabilities (KEV) catalog, and no proof-of-concept has been confirmed public. Still, because the method is easy to infer from the fix, it is wise to move without waiting for a listing.

How events unfolded

Here is the timeline from discovery to the release of the fixes. The vulnerability was reported privately to OpenStack's Vulnerability Management Team (VMT) before disclosure, and was announced all at once once the fixes were ready.

← Swipe to move

Frequently asked questions

Q. We use OpenStack but don't recall installing Mistral. Are we affected?

A. Mistral is an optional component, so if you have not deployed it, this vulnerability has no direct impact. However, OpenStack's own build and operations tooling sometimes uses Mistral internally. Even if nothing comes to mind, it is reassuring to check whether services such as `mistral-api` or `mistral-executor` are running.

Q. If it needs ordinary user privileges, isn't it not that dangerous?

A. On a cloud platform, the very large population of "ordinary users" is the trap. Tenant users, the service accounts running CI automation, contractor working accounts — there are countless principals holding tokens. If any one of them is taken over or abused, the attack succeeds, which is why the severity is rated as high as 9.9. The collapse of the assumption that "you're safe unless you're an admin" is the crux of this case.

Q. We can't upgrade right away. What is the minimum stopgap?

A. Narrowing the range that can reach the Mistral API is the top priority. Limit it to a trusted management network so it cannot be reached directly from the internet or general tenants. Also inspect Mistral's logs for the creation of suspicious public resources and API calls, and if anything looks off, rotate the service-account credentials. This only buys time until the update; the root fix is moving to the patched version.

Q. How can we tell whether we have already been attacked?

A. A definitive verdict is hard, but records of unfamiliar public workflows and actions in Mistral's logs, API calls from unexpected accounts, and suspicious processes or outbound traffic on the executor workers are all clues. Work on the assumption that service-account credentials have leaked, and trace Keystone's authentication logs for abnormal access to other services. No PoC is public, but it is some comfort that this is not an attack that leaves no trace.

References