Skip to main content

MCPHub CVE-2026-94047

| EUVDEUVD-2026-83781 LOW
Improper Privilege Management (CWE-269)
2026-09-20 VulDB GHSA-2xcr-p42x-hfx6
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as non-admin MCPHub user
  2. Delivery
    Craft template with stdio/command server config
  3. Exploit
    POST to Template Import Endpoint
  4. Execution
    Privilege check bypassed, config persisted
  5. Persist
    MCPHub spawns command as its process
  6. Impact
    Arbitrary host command execution

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
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

Requires an authenticated non-admin MCPHub account (PR:L) with access to the Template Import Endpoint, on MCPHub version <=1.0.32. The imported template must contain at least one 'privileged' server config - type 'stdio', or any config carrying a 'command'/'args', or any config lacking a remote target (no url and no OpenAPI url/schema) - since those are spawned locally as OS commands. Exploitation is limited by needing a valid low-privilege login and by the imported stdio server actually being started; it does not work against v1.0.33+, where importTemplate enforces the admin-only privileged-config policy.

Impact

This is a genuine authorization/privilege-escalation flaw whose real-world severity exceeds the vendor's 5.3 CVSS4.0 score. The vendor rated impact as VC:L/VI:L/VA:L, but the patch and regression tests confirm the actual consequence: a non-admin user can import a template containing a 'stdio'/command-carrying server config, which MCPHub spawns locally as its own OS process - i.e., arbitrary host command execution (effective RCE). The createServer/updateServer paths already enforced isPrivilegedServerConfig, but importTemplate never received the requesting user, so the same check was silently bypassed. Signals: PR:L (a valid low-privilege account is required, so not fully anonymous), AV:N/AC:L/UI:N (network-reachable, no user interaction), POC publicly available in GitHub issue #1094, and SSVC E:P (proof-of-exploit). No EPSS score and no CISA KEV listing are provided, and there is no evidence of active exploitation. Given the RCE-grade technical impact I dispute the vendor score upward to ~8.8 (CVSS 3.1); the main mitigating factor is the PR:L authentication requirement. Missing signals: no EPSS, no KEV, no independent exploit maturity beyond the issue report.

Exploit ScenarioDerived

An attacker holding an ordinary non-admin MCPHub account crafts a config template containing a server with type 'stdio' (or a bare 'command'/'args' with no remote url/OpenAPI target) and submits it to the Template Import Endpoint. Because importTemplate omitted the admin/privilege check that createServer enforces, the malicious stdio server is persisted and later spawned by MCPHub, executing the attacker's command on the host. A public proof-of-exploit exists in GitHub issue #1094, and the regression tests in the patch demonstrate the exact 'touch /tmp/pwned' / 'sh -c id' payloads.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 20, 2026

Improper privilege management in samanhappy MCPHub up to 1.0.32 lets any authenticated non-admin user import a configuration template that defines a 'privileged' server (a stdio server, any config carrying command/args, or any config with no remote target), which MCPHub then spawns locally as an operating-system command - resulting in arbitrary command execution as the MCPHub process. Exploitation only requires a valid low-privilege login and access to the Template Import Endpoint (CVSS 4.0 vector shows PR:L), and publicly available exploit code exists via GitHub issue #1094, so the practical risk is higher than the vendor's 5.3 score suggests; this assessment rates it CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. The flaw is fixed in MCPHub 1.0.33, where importTemplate enforces the admin-only privileged-config policy.

RemediationAI

Vendor-released patch: 1.0.33 - upgrade all MCPHub deployments from <=1.0.32 to v1.0.33 (release notes at https://github.com/samanhappy/mcphub/releases/tag/v1.0.33), or apply the upstream fix commit 18a4467bc4ec6390b1f841d8a468a37e9922f837 / PR https://github.com/samanhappy/mcphub/pull/1096, which adds isPrivilegedServerConfig to src/utils/serverConfigValidation.ts and passes the requesting user into importTemplate so non-admins cannot import stdio/command-carrying configs. If immediate upgrade is not possible, compensating controls are required because the flaw is a missing server-side authorization check: restrict the Template Import Endpoint at the reverse proxy or API gateway to admin-authenticated sessions only (this breaks legitimate non-admin template sharing and must be maintained until patched), and audit/limit who can hold any authenticated MCPHub account, since PR:L is the only prerequisite. As a detective control, inspect the MCPHub server registry for unexpected stdio servers or entries lacking url/OpenAPI targets, review process-spawn logs for the MCPHub service account, and treat any imported config containing 'command'/'args' as suspicious. Note that disabling or restricting imported stdio servers at runtime is only partial mitigation, because the command may execute depending on when the server is started; the upgrade to 1.0.33 is the only complete fix identified. There is no indication of a backport to pre-1.0.33 release lines in the available data.

Affected VersionsENISA

MCPHub 1.0.13
MCPHub 1.0.8
MCPHub 1.0.22
MCPHub 1.0.11
MCPHub 1.0.31
MCPHub 1.0.16
MCPHub 1.0.29
MCPHub 1.0.28
MCPHub 1.0.12
MCPHub 1.0.9
MCPHub 1.0.10
MCPHub 1.0.2
MCPHub 1.0.18
MCPHub 1.0.5
MCPHub 1.0.26
MCPHub 1.0.14
MCPHub 1.0.3
MCPHub 1.0.30
MCPHub 1.0.24
MCPHub 1.0.7
MCPHub 1.0.15
MCPHub 1.0.0
MCPHub 1.0.17
MCPHub 1.0.32
MCPHub 1.0.20
MCPHub 1.0.1
MCPHub 1.0.21
MCPHub 1.0.6
MCPHub 1.0.23
MCPHub 1.0.19
MCPHub 1.0.25
MCPHub 1.0.27
MCPHub 1.0.4

Affected Packages

euvd mcphub no fix

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

MCPHub is a manager/hub for Model Context Protocol (MCP) servers that supports exporting and importing JSON configuration templates describing servers and groups. Template import originally flowed from templateController.importConfigTemplate into importTemplate(template, owner) in src/services/templateService.ts, with no caller identity passed down and therefore no authorization check on the imported server definitions. In MCPHub, a server config is 'privileged' when it can execute host commands: type 'stdio' servers spawn the supplied command/args as the MCPHub process, and any config lacking a remote target (no url and no OpenAPI url/schema) is treated as stdio-shaped. The createServer/updateServer paths already enforced an isPrivilegedServerConfig policy, but the template import path did not - the root cause class is CWE-269 (Improper Privilege Management), specifically a missing authorization check on a privileged operation (creation of command-executing server definitions) reachable by a non-admin. The fix extracts isPrivilegedServerConfig into src/utils/serverConfigValidation.ts, threads the requesting user into importTemplate, and rejects each privileged server for non-admins with a 'failed' detail item ('Only admins can import stdio-based server configurations') before any persistence or addServer call; trusted system callers that pass no requestingUser retain legacy behavior. A regression test (tests/services/templateService-import-privilege.test.ts) confirms non-admin imports of stdio and command-carrying configs are rejected while remote (sse/url) servers still import.

Know when Mcphub 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 (VulDB) PRIMARY 2.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 8.8 HIGH

Network-reachable endpoint, low complexity, requires a low-privilege authenticated account (PR:L); imported stdio config yields arbitrary host command execution, so C/I/A:H.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
Severity Changed
Sep 20, 2026 - 20:22 NVD
MEDIUM LOW
CVSS changed
Sep 20, 2026 - 20:22 NVD
5.3 (MEDIUM) 2.1 (LOW)
CVE Published
Sep 20, 2026 - 19:00 cve.org
MEDIUM 5.3

DescriptionCVE.org

A security vulnerability has been detected in samanhappy MCPHub up to 1.0.32. The impacted element is the function importTemplate of the file src/services/templateService.ts of the component Template Import Endpoint. The manipulation leads to improper privilege management. Remote exploitation of the attack is possible. The exploit has been disclosed publicly and may be used. Upgrading to version 1.0.33 is sufficient to resolve this issue. The identifier of the patch is 18a4467bc4ec6390b1f841d8a468a37e9922f837. It is advisable to upgrade the affected component.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
niche, recently-released open-source MCP aggregator hub, limited production footprint
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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 LOW
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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