Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as paying tenant with shell
-
DeliveryRead CONTAINER_SHARED_SECRET from workspace env
-
ExploitSend bearer-authed request to victim workspace API
-
ExecutionBypass workspaceTokenMatches ownership check
-
ImpactRead/write/restore cross-tenant data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must be an authenticated paying tenant (PR:L) running Soft Machine version 0.2.247 or earlier, with access to a workspace shell where the global CONTAINER_SHARED_SECRET is readable from the user-facing process environment. Exploitation consists of presenting that shared secret as a bearer token to another tenant's workspace HTTP API, which verifyContainerAuth() and authenticateWorkspaceHttp() accept without validating workspace ownership (the workspaceTokenMatches per-workspace check is bypassed entirely on the shared-secret path). Limiting factors: requires a valid (paid) account, adjacent/internal network reachability to the target workspace API (AV:A), and no user interaction; no patch is available, so only mitigations like rotating/segregating secrets or restricting the internal API apply. |
| Impact | This is a genuine high-priority multi-tenancy isolation failure, not an inflated CVSS number. The CWE-863 (improper authorization) flaw lets any authenticated tenant present the globally-shared CONTAINER_SHARED_SECRET as a bearer token to reach ANY other tenant's workspace API, yielding cross-workspace read, write, and destructive-restore primitives - hence the S:C (scope change) and full C:H/I:H/A:H that drive the 9.0 base score. The exploitation barrier is low once inside the platform: AC:L and PR:L mean any paying customer with a workspace shell (where the secret is already exposed in the process environment) can weaponize it with trivial effort. Tempering factors: AV:A limits reach to the platform's internal/adjacent network rather than the open Internet, and PR:L requires a valid (paid) account. No EPSS score, CISA KEV entry, or public POC was provided, so exploitation is 'no public exploit identified at time of analysis' - but the trivial mechanics (reuse an already-readable environment secret) mean a working exploit is cheap to develop. One signal to verify: the vendor selected AV:A, yet a workspace-to-workspace HTTP API call could arguably be AV:N depending on network topology - confirm with the vendor whether the API is exposed beyond the internal Fly network. Notably, there is no patch at publication, so no remediation floor exists. |
| Exploit ScenarioDerived | A paying customer opens a shell in their own Soft Machine workspace and reads CONTAINER_SHARED_SECRET from the process environment. They send an HTTP request to another tenant's workspace API endpoint using that secret as a bearer token; verifyContainerAuth()/authenticateWorkspaceHttp() accept it without checking workspace ownership, granting read/write and destructive-restore access to the victim tenant's data. No public exploit code is known, but the attack requires only a valid paid account and basic HTTP tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Cross-workspace authentication bypass in Soft Machine 0.2.247 and earlier lets an authenticated paying tenant read, modify, and destructively restore another tenant's workspace through its HTTP API. Two helper functions in /app/server.js, verifyContainerAuth() and authenticateWorkspaceHttp(), accept the app-wide CONTAINER_SHARED_SECRET as a bearer token without validating which workspace the caller owns, bypassing the per-workspace workspaceTokenMatches check; because that secret is identical on every container and readable from the tenant's own process environment, the multi-tenancy isolation boundary collapses. Exploitation requires a valid paid account, adjacency to the target workspace API (AV:A), and no user interaction; no public exploit has been identified at time of analysis and no vendor-released patch is available, so this is assessed at CVSS 9.0 as a genuine high-priority multi-tenancy isolation failure.
RemediationAI
No vendor-released patch identified at time of analysis; only the GitHub advisory GHSA-63gh-vp9f-vxhj at https://github.com/Soft-Machine-io/security/security/advisories/GHSA-63gh-vp9f-vxhj is available for tracking. Until a patched version is published, apply compensating controls that break the shared-secret path. First, rotate the CONTAINER_SHARED_SECRET so it is unique per workspace rather than identical across every container, which prevents one tenant's secret from authenticating to another workspace, at the cost of reworking any legitimate cross-container orchestration and sequencing the rolling rotation carefully to avoid disrupting live containers. Second, remove or scrub CONTAINER_SHARED_SECRET from the user-facing process environment inside each workspace so tenants cannot read it from their shell, with the trade-off that internal tooling or agents expecting the variable will fail until moved to an operator-only injection path. Third, enforce network-level restrictions on the intra-Fly workspace HTTP API so a workspace container can reach only the workspace APIs it owns, blocking cross-tenant calls at the adjacency boundary, at the cost of fragmenting the service mesh and maintaining per-workspace allow-lists as tenants scale. If code changes are feasible before an official patch, add a workspace-ownership assertion to verifyContainerAuth() and authenticateWorkspaceHttp() so the shared secret is never accepted as an identity-bearing token, or at minimum gate that bearer path behind workspaceTokenMatches as the user-facing token path already is.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Soft Machine, from the Soft-Machine-io project, is a container-based virtual-machine Cloud OS that runs per-tenant agentic workspaces on the Fly.io platform. The root-cause class is CWE-863 (Incorrect Authorization): two server-side authentication helpers in /app/server.js, verifyContainerAuth() and authenticateWorkspaceHttp(), treat the global CONTAINER_SHARED_SECRET as a valid bearer credential but never bind that credential to a workspace identity. The codebase does implement a proper per-workspace check, workspaceTokenMatches, but it is only applied to the user-facing per-workspace token path; the shared-secret bearer path short-circuits that verification entirely. Because the same secret value is provisioned identically into every container in the Fly application and is reachable from the user-facing process environment inside each tenant's workspace, any tenant with shell access effectively holds the credential needed to authenticate to any other tenant's workspace API, yielding read, write, and destructive-restore primitives across tenants. The supplied CPE cpe:2.3:a:soft-machine-io:security:*:*:*:*:*:*:*:* covers the affected Soft Machine releases through 0.2.247. The CVSS 3.1 vector AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H is consistent with the assessed prerequisites: an authenticated low-privileged tenant account, adjacent network reachability to the target workspace API, no user interaction, and scope change across tenant boundaries with high confidentiality, integrity, and availability impact.
Know when Security 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:L/UI:N/S:C/C:H/I:H/A:H
Authenticated tenant (PR:L) reuses an internal shared secret (AC:L, AV:A) to cross the workspace trust boundary (S:C), gaining full read/write/restore over another tenant (C:H/I:H/A:H).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
Soft Machine is a Virtual Machine-based agentic development environment / Cloud OS. In versions 0.2.247 and prior, two authentication helpers in /app/server.js - verifyContainerAuth() and authenticateWorkspaceHttp() - accept the global CONTAINER_SHARED_SECRET as a bearer token without verifying which workspace the caller belongs to. Because that secret is set identically on every container in the Fly app and is reachable from the user-facing process environment inside each workspace, any tenant can use it to authenticate to any other tenant's workspace API. The result is cross-workspace read, write, and destructive-restore primitives reachable from any paying customer's shell. The existing per-workspace token check (workspaceTokenMatches) protects the user-facing per-workspace token path, but the shared-secret bearer path bypasses it entirely. At time of publication, there are no publicly known patches.
Technical POC Analysis
CWE-863 Incorrect Authorization.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Soft Machine 0.2.247 and earlier contains a critical multi-tenancy isolation flaw that allows any paying tenant to access, alter, or destructively restore other tenants' workspaces via the product's HTTP API. Because the shared container secret is identical across all deployments and exposed to tenant environments, a single malicious customer could compromise the confidentiality, integrity, and availability of every other customer's data. Leadership should treat this as a severe business risk requiring immediate containment and a strategic review of the platform's tenancy architecture.
No vendor-released patch identified at time of analysis. Interim mitigations: rotate CONTAINER_SHARED_SECRET to unique per-container values and remove it from tenant environments; restrict network access to the workspace HTTP API to trusted management networks only (AV:A adjacency); implement a temporary authorization layer that enforces per-workspace ownership checks before API operations; enable detailed audit logging and monitor for cross-workspace access attempts; and isolate tenants at the network or container level where feasible.
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.
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
Local privilege escalation vulnerability potentially allowed an attacker to misuse ESET’s file operations to delete file
The iThemes Security (better-wp-security) plugin before 7.0.3 for WordPress allows SQL Injection (by attackers with Admi
Kaspersky has fixed a security issue in the Kaspersky Security 8.0 for Linux Mail Server. Rated high severity (CVSS 8.8)
Improper validation of the server’s certificate chain in secure traffic scanning feature considered intermediate certifi
Cross-tenant data disclosure in Soft Machine workspaces running version 0.2.247 and prior lets any peer Fly Machine on t
The vulnerability potentially allows an attacker to misuse ESET’s file operations during the module update to delete or
Trend Micro Security 2022 (consumer) has a link following vulnerability where an attacker with lower privileges could ma
Trend Micro Security 2021 and 2022 (Consumer) is vulnerable to an exposed dangerous method vulnerability that could allo
The iThemes Security plugin before 6.9.1 for WordPress does not properly perform data escaping for the logs page. Rated
Trend Micro Security 2021 and 2022 (Consumer) is vulnerable to an Out-Of-Bounds Read Information Disclosure Vulnerabilit
Privilege escalation vulnerability in Windows products of ESET, spol. Rated high severity (CVSS 7.1), this vulnerability
EUVD-2026-90190
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB