Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
DeliveryPOST /api/user/plugins omitting top-level MCP type
-
ExploitBypass _reject_non_admin_mcp_stdio inspection
-
ExecutionStore malicious stdio action persistently
-
ImpactInvoke action tool spawning OS process as service identity
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated low-privileged account (PR:L) and TWO non-default deployment prerequisites explicitly named in the description: personal plugins must be enabled AND governance must be configured to permit MCP actions. The attack-specific trigger is omitting the top-level 'type' field in the POST /api/user/plugins payload so that _reject_non_admin_mcp_stdio skips its inspection before the type is restored from metadata, allowing a stdio MCP action to persist. Code execution only fires when the stored action tool is subsequently invoked, spawning a process under the application service identity. Limiting factors: if personal plugins are disabled or MCP governance is not permitted, the path is unreachable; exploitation also depends on the attacker holding a valid low-privilege session rather than being fully anonymous. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, base 8.8) indicates a network-reachable, low-complexity flaw requiring only low-privileged authentication, yielding high confidentiality, integrity, and availability impact via OS command execution (CWE-78) under the application service identity. This is a genuinely serious impact (arbitrary process execution), but several signals temper widespread-exploitation urgency: no EPSS score was provided, the CVE is NOT in CISA KEV, and no public exploit code was identified - so exploitation status is 'no public exploit identified at time of analysis.' Crucially, the description constrains exploitation to environments where personal plugins are enabled AND governance permits MCP actions, which is a non-default, operator-dependent precondition that the AC:L metric does not reflect; real-world attack complexity is effectively higher than the raw vector suggests. Priority should be treated as moderate-to-high for deployments that have explicitly enabled MCP personal plugins, and low for the default/common deployment where those features are off. Note also a version discrepancy: the description states the fix is in 0.261.031, while the supplied patch commit only bumps VERSION to 0.261.029 - verify the authoritative fixed version with the vendor advisory. |
| Exploit ScenarioDerived | An authenticated low-privileged SimpleChat user sends a crafted POST /api/user/plugins request that omits the top-level MCP 'type' field, causing the _reject_non_admin_mcp_stdio guard to skip inspection before the type is restored from metadata. The malicious personal action persists and reaches McpPluginFactory.create_connector, so that when the action tool is later invoked, MCPStdioPlugin.connect launches an attacker-chosen operating-system process under the application service identity. No public proof-of-concept was identified, though the fixing commit (73ff7d6) publicly discloses the vulnerable authorization-ordering logic. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Authenticated low-privileged users of Microsoft SimpleChat can achieve operating-system command execution under the application service identity by exploiting an authorization-ordering flaw in POST /api/user/plugins (CVE-2026-105797, CVSS 8.8). Affected releases are 0.261.003 and 0.261.027; an attacker with a valid low-privilege session can omit the top-level MCP type field so that the _reject_non_admin_mcp_stdio check skips inspection, after which the type is restored from metadata and a stdio MCP action is persisted - the process then spawns when that action tool is invoked. Exploitation additionally requires two non-default deployment prerequisites (personal plugins enabled and governance permitting MCP actions), and there is no public exploit identified at time of analysis; vendor-released patch: 0.261.031.
RemediationAI
Upgrade to SimpleChat 0.261.031, the vendor-released patched version; the fix is contained in commit 73ff7d6998dc4827a0f6ba002386275a7c1ec804 and is described in advisory GHSA-h4mw-qw8m-5x4j at https://github.com/microsoft/simplechat/security/advisories/GHSA-h4mw-qw8m-5x4j. If immediate upgrade is not possible, apply the two deployment-level compensating controls that make the vulnerable path unreachable: disable personal plugins so low-privileged users cannot register their own actions, and configure governance to disallow MCP actions so no MCP manifest reaches the connector factory - note that the second control is the broader of the two and will block legitimate MCP integrations, while the first may disrupt users who rely on personal workspace tooling. Because the flaw is only exploitable once a stored stdio action is invoked, also audit existing personal plugin records for entries whose effective type is MCP with a stdio transport or a stdio:-prefixed endpoint and delete them. Be aware that the upstream fix retires the stdio transport outright, so any legitimate stdio-based MCP actions must be reconfigured to a supported remote MCP server before patching; that migration is the primary operational trade-off. After upgrading, verify no unexpected child processes are spawned by the application service identity, and if the vulnerable window was open, rotate any secrets or credentials readable by that service account and review data it can modify.
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
The root cause is OS command injection (CWE-78) arising from a validation-ordering defect in SimpleChat's plugin authorization pipeline rather than from a missing check. The endpoint POST /api/user/plugins runs a gate, _reject_non_admin_mcp_stdio, that is intended to stop non-admin users from registering stdio-based MCP (Model Context Protocol) plugins, which execute local operating-system processes. If the top-level action "type" field is omitted from the request payload, the gate inspects an empty/absent value and passes; the type is subsequently restored from the nested metadata object during manifest normalization. The persisted personal action therefore survives as an MCP action and, when its tool is invoked, passes through McpPluginFactory.create_connector into MCPStdioPlugin.connect, which starts the attacker-selected operating-system process under the application service identity. The upstream fix introduces application/single_app/functions_action_manifest.py, a dependency-free contract module that centralizes type resolution (resolve_action_type, is_mcp_action), classifies retired stdio configurations (McpStdioRemovedError, MCP_STDIO_REMOVED_CODE), and binds actions to a server-side authoritative origin via the McpActionOrigin dataclass / ScopedActionManifest wrapper so that origin is never derived from client-supplied JSON. It also threads an origin parameter through the MCP connection tester and adds structured error classification (classify_mcp_exception, get_mcp_error_http_status), effectively retiring the stdio transport in favor of remote MCP servers.
Know when Simplechat 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:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network API reachable by an authenticated low-privileged user (AV:N/PR:L); the type-omission bypass is deterministic (AC:L); arbitrary OS process execution under the service identity gives full C:H/I:H/A:H with no scope change.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
SimpleChat is a secure AI conversation application with personal and group workspaces for document-grounded interactions. In versions 0.261.003 and 0.261.027, an authorization ordering flaw in POST /api/user/plugins allows an authenticated low-privileged user to omit the top-level MCP type so that _reject_non_admin_mcp_stdio skips inspection before the type is restored from metadata. The stored personal action can then reach McpPluginFactory.create_connector, and MCPStdioPlugin.connect starts the attacker-selected operating-system process under the application service identity when the action tool is invoked. Exploitation requires personal plugins to be enabled and governance to permit MCP actions, and it can expose or modify secrets and data available to the service or disrupt the service. This issue is fixed in version 0.261.031.
Technical POC Analysis
Two chained defects, tracked as CWE-863 (incorrect authorization) producing CWE-78 (OS command injection).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Microsoft SimpleChat, at releases 0.261.003 and 0.261.027, contains an authorization-ordering flaw that lets a user holding a valid low-privilege session cause the application to execute operating-system commands under the service account that runs SimpleChat. Successful abuse yields code running with the application's own privileges, meaning any data, credentials, or downstream integrations reachable by that service identity could be exposed or manipulated. Leadership should care because the fix is already published as version 0.261.031, making this a straightforward, time-bound remediation rather than a research problem - though exploitation also depends on two non-default deployment settings, and no public exploit identified at time of analysis.
Apply vendor patch.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
More in Simplechat
View allStored cross-site scripting in Microsoft SimpleChat versions prior to 0.261.029 allows an authenticated group Owner, Adm
Missing authentication in Microsoft SimpleChat (prior to 0.241.206) lets remote, unauthenticated clients invoke administ
Insecure Direct Object Reference (IDOR) in Microsoft SimpleChat exposes any authenticated user's profile data to other a
EUVD-2026-93426
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB