Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister malicious OAuth client via unauthenticated endpoint
-
DeliveryLure victim through OAuth authorization flow
-
ExploitIntercept short-lived authorization code
-
ExecutionSubmit token request without client_secret or PKCE verifier
-
PersistReceive valid access tokens for victim account
-
ImpactAccess victim resources at victim's privilege level
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three conditions to align: (1) MCPHub must have its embedded OAuth server enabled (oauthServer.enabled: true), which is a non-default configuration requiring explicit operator setup; (2) the attacker must obtain the short-lived authorization code issued to the victim, most feasibly via a network intercept on an unencrypted channel, a misconfigured or attacker-controlled redirect_uri, referrer-header leakage, or by registering a malicious client through the unauthenticated dynamic client registration endpoint if that feature is enabled; (3) a legitimate user must have initiated an authorization flow (UI:P). Exploitation is limited by the short expiry window of authorization codes and by the need to be positioned to capture them. Deployments that disable the OAuth server, require TLS everywhere, and lock down dynamic client registration to authenticated operators significantly reduce exposure. |
| Impact | The CVSS 4.0 score of 7.6 with AT:P (attack requires a specific precondition - authorization code interception) and UI:P (victim must initiate an OAuth flow) accurately constrains real-world exploitability relative to the VC:H/VI:H impact metrics. The attack is not fire-and-forget: an adversary must occupy a position to capture the short-lived authorization code, whether via network interception, referrer-header leakage, open-redirect on the redirect_uri, or a malicious OAuth client registered through the unauthenticated dynamic registration endpoint. Once a code is in hand, however, redemption is trivially automated since no credential is required. EPSS data is not present in the input, and the vulnerability is not in CISA KEV, indicating no confirmed widespread exploitation. No public POC has been identified at time of analysis. Even so, any operator running MCPHub with the OAuth server enabled and exposing it to the internet - including, say, a mid-sized municipal IT team in sopot deploying it as an AI-tool gateway - should treat patching as urgent given that the impact of a successful exploit is full account takeover with the victim's privilege level. The absence of an availability impact (VA:N) means the attack is silent by design, complicating post-incident detection. |
| Exploit ScenarioDerived | An attacker registers a malicious OAuth client via the unauthenticated dynamic registration endpoint, then lures a victim user through an authorization flow where the code is delivered to a redirect URI the attacker controls or can observe. The attacker sends a POST to the token endpoint with the intercepted authorization code but no client_secret and no PKCE verifier; pre-patch MCPHub accepts the request and returns a valid access token scoped to the victim's account. No public POC script has been identified, but the token-request step requires only a standard HTTP call. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 12, 2026
MCPHub's embedded OAuth 2.0 authorization server before v1.0.32 allows an attacker who intercepts a victim's authorization code to redeem it for valid access tokens without supplying a client secret or PKCE verifier. The root cause is a logic inversion in client authentication: the pre-fix condition checked if (clientSecret && client.clientSecret), meaning that omitting the secret in a token request caused the entire secret-validation block to be skipped, even for confidential clients with a registered secret. Simultaneously, PKCE enforcement was absent for public clients, leaving no proof-of-possession check between code issuance and token exchange. Vendor-released patch v1.0.32 is available; no public exploit or CISA KEV listing has been identified at time of analysis.
RemediationAI
Upgrade MCPHub to v1.0.32 or later, which is the vendor-released patch available at https://github.com/samanhappy/mcphub/releases/tag/v1.0.32. The fix commit is e927620cd1a80e8691213b01eb8cd6ffa1a66e9f. The patch enforces client-secret verification for confidential clients regardless of whether the client submits a secret, mandates PKCE with S256 for public clients at both the /authorize and token-redemption steps, removes 'plain' as an accepted PKCE method, and optionally requires authentication for dynamic client registration (set dynamicRegistration.requiresAuthentication: true in OAuth config). As a compensating control prior to patching, operators can disable the OAuth server entirely if MCP tool integrations do not require it (set oauthServer.enabled: false), or restrict network access to the token and authorization endpoints to trusted client IP ranges. Disabling the OAuth server will break any integrations relying on delegated authorization, so assess dependencies before applying this workaround.
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
MCPHub is an open-source Model Context Protocol (MCP) aggregator (github.com/samanhappy/mcphub) that ships an embedded OAuth 2.0 authorization server built on the node-oauth2-server library. The vulnerability (CWE-287, Improper Authentication) manifests in two related gaps exposed in oauthServerService.ts and oauthServerController.ts. First, the getClient authentication guard used the compound condition if (clientSecret && client.clientSecret), which short-circuits to false when the attacker omits the client secret - bypassing the safeCompare validation even for confidential clients that have a registered secret. Second, the authorization endpoint did not enforce PKCE (RFC 7636) for public clients lacking a registered secret, and the server also advertised support for the weak 'plain' challenge method alongside S256. Together these gaps mean that possession of an intercepted authorization code is the only credential needed to obtain tokens. The fix inverts the client-secret gate to if (client.clientSecret) (secret is mandatory if registered), adds a server-side S256 PKCE requirement for public clients at both the /authorize and token-exchange steps, drops 'plain' from the metadata advertisement, and optionally gates dynamic client registration behind authentication.
Know when the next one hits your stack
- 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
AC:H reflects mandatory authorization code interception; S:C because attacker crosses trust boundary into victim's account scope.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
MCPHub before 1.0.32 contains an authentication bypass vulnerability in its embedded OAuth 2.0 authorization server where client authentication is disabled by default and PKCE enforcement is optional. Attackers who obtain an authorization code through interception can redeem it for access tokens without providing a client secret or PKCE verifier, gaining access to victim accounts and their privileges.
Technical POC Analysis
CWE-287 (Improper Authentication; the advisory also assigns CWE-306 and CWE-770).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
MCPHub versions prior to v1.0.32 contain an OAuth authentication bypass allowing attackers to forge valid access tokens without client credentials or user authorization. Any user whose authorization code is intercepted can have legitimate access tokens stolen, enabling account takeover and impersonation. Organizations running affected MCPHub instances face immediate risk of unauthorized account access and data breach.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-76850
GHSA-c47m-m826-fc8g
NVD
CVE.org
EPSS
Exploit-DB