Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister OAuth client with attacker redirect URI
-
DeliveryCraft authorization URL and phish logged-in victim
-
ExploitVictim click auto-completes flow, code sent to attacker
-
ExecutionExchange code for access/refresh tokens
-
PersistPresent token as bearer to Obot API
-
ImpactRead or modify victim's resources
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 | Requires Obot running with OBOT_SERVER_ENABLE_AUTHENTICATION=true (this specific server setting must be enabled), plus a victim who is already logged into Obot and who visits a single attacker-crafted OAuth authorization URL. The attacker needs no account or privileges on Obot (unauthenticated dynamic client registration is reachable), but exploitation is gated by the required victim interaction (clicking the malicious link) and by the non-default authentication-enabled deployment mode. It affects versions <= v0.22.1; v0.23.0 remediates via a consent screen, token audience restriction to the requested MCP server, and audience validation. |
| Impact | The vendor CVSS 4.0 base score is 8.7 (High) and the GHSA-cited CVSS 3.1 is 8.8, driven by network vector (AV:N), low complexity (AC:L), no attacker privileges (PR:N) and high confidentiality/integrity/availability impact - tempered only by required user interaction (UI:P). No EPSS score, no CISA KEV listing, and no public proof-of-concept were provided, so exploitation status is: no public exploit identified at time of analysis. The high CVSS reflects a genuine, well-understood authorization flaw (CWE-863: three chained defects - unauthenticated OAuth dynamic client registration with unrestricted redirect URIs, consent-less auto-completion of the authz flow, and missing JWT audience validation), but two factors materially lower real-world urgency: it only applies when OBOT_SERVER_ENABLE_AUTHENTICATION=true is set, and it requires a currently-logged-in victim to click a single attacker-crafted authorization URL (a phishing/social step). This is a real, credible authorization bypass worth patching, but the non-default auth prerequisite plus the required victim interaction and the absence of KEV/EPSS/POC signals make it targeted-effort rather than mass-exploitable. Note the input CVSS 4.0 vector uses UI:P (passive) whereas the attack narrative (victim must actively click a crafted link) is better modeled as active interaction - a minor scoring nuance to verify with the vendor. |
| Exploit ScenarioDerived | An attacker uses Obot's unauthenticated OAuth dynamic client registration to register a client whose redirect URI points to their own domain, then emails a logged-in Obot user a single crafted authorization URL. Because the flow auto-completes with no consent screen, the victim's browser silently delivers an authorization code to the attacker, who exchanges it for access and refresh tokens carrying the victim's full group set; since Obot validated only the issuer and not the audience, the tokens work as bearer credentials against any API the victim can reach. No public exploit code is identified at this time. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 27, 2026
OAuth dynamic client registration in Obot through v0.22.1 allows unauthenticated remote attackers to register an OAuth client pointing at an attacker-controlled redirect URI, then harvest an access and refresh token from a logged-in victim who visits a single crafted authorization URL. The minted token carries the victim's full group set and is accepted as a bearer token against any Obot API endpoint the victim can access - not just the requested MCP server - letting the attacker read or modify the victim's resources until the token is revoked. Exploitation is gated by the server running with OBOT_SERVER_ENABLE_AUTHENTICATION=true and by required victim interaction (clicking the link); no public exploit code has been identified at time of analysis. Versions v0.23.0 and later add a consent screen, token scoping to the requesting MCP server, and audience validation.
RemediationAI
Vendor-released patch: upgrade Obot to v0.23.0 or later, which the advisory states adds three protections - a consent screen that shows the requesting client and the MCP server it seeks access to, restriction of tokens minted by the MCP OAuth flow to only the MCP involved in the request, and audience validation as a fail-safe so those tokens are accepted only for the MCP server they were issued for. Full details are in GHSA-xwmw-prc4-v3cr (https://github.com/obot-platform/obot/security/advisories/GHSA-xwmw-prc4-v3cr) and the VulnCheck advisory. If immediate upgrade is not possible, the most effective compensating control is to stop exposing the Obot OAuth/authorization endpoints to untrusted networks - place the service behind a VPN or an authenticating reverse proxy so the dynamic client registration and authorization URLs cannot be reached by arbitrary internet users; the trade-off is reduced accessibility for legitimate remote users. Because the attack depends on a logged-in victim following a crafted link, restricting the deployment to trusted internal networks and enforcing strict browser/redirect hygiene reduces exposure but does not remove the underlying flaw. Alternatively, running without OBOT_SERVER_ENABLE_AUTHENTICATION removes this specific OAuth path, but that leaves the deployment in an unauthenticated configuration, which is a worse overall posture and should not be used as a long-term mitigation. Also assume that any tokens issued to unexpected clients before remediation may be compromised: audit registered OAuth clients for unrecognized redirect URIs and revoke issued access and refresh tokens, since revocation is the only removal mechanism the advisory identifies once a token has been minted.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, 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 class is CWE-863 (Incorrect Authorization), realized through three chained OAuth/MCP design flaws in Obot's Model Context Protocol authorization flow. First, the OAuth dynamic client registration endpoint was reachable without authentication and imposed no allowlist or validation on the redirect URIs a client could register, so an attacker could register a legitimate-looking client that redirects to their own domain. Second, the authorization flow auto-completed for an already logged-in user with no consent screen, meaning merely loading the authorization URL issued an authorization code and delivered it to the attacker's redirect URI without any user decision point. Third, the JWT minted by the MCP OAuth flow embedded the victim's full group set - the claim used to authorize API paths - while Obot's JWT verification validated only the issuer and not the audience; audiences were enforced separately at the MCP layer, so the token's intended audience (a single MCP server) did not constrain its use. Combined with the CVSS 4.0 vector AV:N/AC:L/AT:N/PR:N/UI:P, this indicates a network-reachable, low-complexity, unauthenticated attack requiring only a passive/present user interaction. The GHSA (GHSA-xwmw-prc4-v3cr) describes the issue as 'OAuth Dynamic Client Registration Enables API Token Theft via Audience Confusion.' The affected component is tracked as CPE cpe:2.3:a:obot-platform:obot:*:*:*:*:*:*:*:* and the Go module go/github.com/obot-platform/obot below 0.23.0.
Know when Obot 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Unauthenticated network attacker (PR:N, AV:N, AC:L) but a victim must click a crafted link (UI:R); stolen token reads and modifies victim resources on the same system (C:H/I:H, S:U, A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Obot before v0.23.0 (affected versions <= v0.22.1) running with OBOT_SERVER_ENABLE_AUTHENTICATION=true exposes OAuth dynamic client registration without authentication and without any restriction on the redirect URIs a client may register. Because the authorization flow auto-completes for an already logged-in user with no consent screen, an attacker who registers a client pointing at their own domain and induces a logged-in victim to visit a single crafted authorization URL receives an authorization code at the attacker-controlled redirect URI and can exchange it for an access token and refresh token. The token minted by the MCP OAuth flow carries the victim's full group set in the JWT, and Obot validated only the issuer and not the audience, so the token is accepted as a bearer token against any Obot API endpoint the victim can access rather than being scoped to the requested MCP server, allowing the attacker to read or modify the victim's resources until the token is revoked. v0.23.0 adds a consent screen, restricts MCP OAuth tokens to the MCP involved in the request, and enforces audience validation.
Technical POC Analysis
Evidence basis: the GHSA-xwmw-prc4-v3cr advisory only.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Obot versions through v0.22.1 are affected by a high-severity OAuth flaw that can allow an attacker to obtain a victim's bearer token and then read or modify any Obot API resources that victim can access. Because the token inherits the victim's full group set, a single successful lure on an authentication-enabled deployment could expose or alter sensitive data until the token is revoked. With no vendor-released patch identified at time of analysis and no public exploit identified at time of analysis, leadership should prioritize accurate inventory of affected deployments, short-term exposure reduction, and planning for the v0.23.0-or-later controls.
No vendor-released patch identified at time of analysis. Interim mitigations include restricting network access to affected Obot instances, disabling dynamic client registration where not required, monitoring and reviewing OAuth client registrations and active tokens, revoking suspicious tokens, and upgrading to Obot v0.23.0 or later where feasible because that release line adds a consent screen, token scoping, and audience validation.
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.
Obot deployments started with the README's Docker quickstart expose port 0.0.0.0:8080 with authentication disabled, allo
Authorization bypass in Obot before v0.21.1 lets any authenticated user with a known MCP Server ID connect to restricted
An authorization bypass in Obot 0.21.1 through 0.24.1 lets any authenticated account holding the low-privileged 'Basic-r
Server-side request forgery in Obot through v0.22.1 allows an authenticated user holding the Power User, Power User Plus
Obot versions 0.12.0 through 0.26.1 return admin- and power-user-supplied static secrets (API keys, tokens) on MCP catal
Unauthenticated disclosure of MCP Registry metadata affects Obot deployments running versions up to and including v0.22.
Authorization bypass in Obot 0.26.0 through 0.26.1 lets an authenticated user who matches any configured vMCP (virtual M
Obot versions 0.25.0 through 0.25.5 and 0.26.0 can persist stale group memberships after an administrator revokes a user
EUVD-2026-88033
GHSA-cfp9-746c-5jrw
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB