CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-VW82-7FV8-R6GP

GHSA-vw82-7fv8-r6gp: Authorization Bypass in Obot MCP Gateway via Insecure Route Configuration

Alon Barad
Alon Barad
Software Engineer

May 13, 2026·7 min read·41 visits

Executive Summary (TL;DR)

Authenticated users can bypass access controls to connect to any registered MCP server via the `/mcp-connect/{id}` endpoint due to a misconfigured global allowlist in the platform's authorization routing logic.

An authorization bypass vulnerability in the Obot MCP Gateway allows authenticated users to access arbitrary Model Context Protocol (MCP) servers without possessing the required Access Control Rules (ACR) or ownership privileges, leading to unauthorized interaction with external tools and data sources.

Vulnerability Overview

The Obot platform functions as a gateway for Model Context Protocol (MCP) servers, integrating external tools and contextual data into Large Language Models. This integration enables LLMs to query external databases, fetch code from private repositories, or interact with local file systems depending on the connected MCP server. The platform architecture relies on an API gateway to route client requests to specific MCP servers using unique endpoint identifiers.

Vulnerability GHSA-vw82-7fv8-r6gp constitutes an Improper Authorization (CWE-285) flaw within this gateway routing logic. The central authorizer fails to enforce fine-grained access control on the /mcp-connect/{id} endpoint. The application effectively bypasses expected Access Control Rules (ACR) and ownership validation constraints for this specific route, defaulting to a globally permitted state.

Because the vulnerability exists in the routing layer rather than the MCP server implementations themselves, the flaw is universally applicable to all MCP servers connected to a vulnerable Obot instance. Any authenticated user can abuse this condition to establish a direct connection to an MCP server, provided they know or can guess the target server's identifier.

Root Cause Analysis

The root cause of this vulnerability lies in an improper configuration of the authorization bypass list within the gateway's core routing implementation. Specifically, the source file pkg/api/authz/authz.go defines arrays of route prefixes that are explicitly exempt from granular access control checks. These arrays, authenticatedPaths and unauthenticatedPaths, dictate whether a request requires deep authorization evaluation or simple authentication validation.

Prior to version v0.21.1, the developer included the /mcp-connect/ path prefix in both of these global allowlists. When an incoming request matches a prefix in these arrays, the central authorizer terminates its evaluation early and permits the request to proceed to the handler logic. This early termination instructs the system to bypass the specific ownership and permission checks required for individual MCP servers.

Consequently, the request handler for the /mcp-connect/ endpoint receives the incoming connection request but assumes that the authorization layer has already vetted the user's permissions. The handler then establishes the protocol connection to the underlying MCP server based solely on the {id} parameter provided in the URL path, leading directly to the authorization bypass condition.

Code Analysis and Patch Review

The remediation implemented in version v0.21.1 centralizes and strictly enforces authorization for MCP server connections. The most critical change involves removing the /mcp-connect/ prefix from the global bypass arrays in pkg/api/authz/authz.go. This removal forces all requests directed at this endpoint to undergo comprehensive evaluation by the central authorizer before reaching the connection handler.

To handle the specific authorization requirements of MCP servers, the maintainers introduced explicit identifier checking logic located in checkMCPID within pkg/api/authz/mcpid.go. The updated authorizer intercepts the request, extracts the MCPID from the URL parameters, and performs mandatory validation checks against the authenticated user's session context.

The updated checkMCPID function mandates two distinct verification paths for authenticated users. First, it verifies if the user is the direct owner of the targeted MCPServerInstance. If the user is not the direct owner, the function utilizes an Access Control Rule (ACR) helper to verify if the user possesses explicit permissions granted via a MCPServerCatalogID or a PowerUserWorkspaceID. Only upon satisfying one of these conditions does the authorizer permit the connection.

// Pseudocode representation of the patched logic in checkMCPID
func checkMCPID(user *User, mcpID string) error {
    // 1. Check direct ownership
    if isOwner(user.ID, mcpID) {
        return nil
    }
    
    // 2. Check catalog or workspace permissions via ACR
    hasPermission := checkACR(user.ID, mcpID, MCPServerCatalogID) || 
                     checkACR(user.ID, mcpID, PowerUserWorkspaceID)
    
    if !hasPermission {
        return errors.New("unauthorized access to MCP server")
    }
    return nil
}

Exploitation and Attack Methodology

Exploitation of this vulnerability requires a minimal set of prerequisites. The attacker must possess a valid, authenticated session on the target Obot instance. This session does not require administrative privileges; a standard low-privileged user account is sufficient. The attacker also requires the unique identifier of a target MCP server, such as ms1test, which they may obtain through information disclosure vulnerabilities, predictable naming conventions, or prior knowledge of the system architecture.

The attack begins with the construction of a standard HTTP GET request directed at the /mcp-connect/{target_mcp_id} endpoint. The attacker includes their valid authentication tokens (e.g., session cookies or Bearer tokens) within the request headers. Upon receiving this request, the vulnerable Obot gateway processes the route, identifies the /mcp-connect/ prefix, and bypasses the authorization checks due to the flawed allowlist configuration.

The Obot gateway subsequently establishes a connection to the specified MCP server on behalf of the attacker. The attacker now possesses a direct communication channel with the external tool. They can issue commands, execute queries, or retrieve contextual data exactly as if they were a highly privileged user explicitly authorized to use that specific MCP integration.

Impact Assessment

The impact of this authorization bypass is severe, meriting a CVSS score of 9.3 (Critical). The core consequence is the unauthorized exposure of external tools and sensitive contextual data managed by the targeted MCP servers. Because the vulnerability facilitates pivoting from the Obot platform to interconnected systems, the CVSS Scope metric is appropriately classified as Changed (S:C).

The precise nature of the data exposure depends entirely on the configuration and purpose of the compromised MCP server. If an MCP server connects to an internal database to provide context to an LLM, the attacker gains the ability to execute database queries or extract sensitive records. If the server interacts with a Version Control System, the attacker acquires read access to private source code repositories and potentially write access if the integration allows it.

Furthermore, this vulnerability compromises the fundamental integrity of the access control model within the Obot platform. Administrators rely on Access Control Rules (ACRs) to isolate resources and enforce least privilege principles. This flaw invalidates those isolation mechanisms, exposing all integrated MCP servers to all authenticated users regardless of the intended operational boundaries.

Remediation and Detection Strategy

The primary and only definitive remediation for this vulnerability is upgrading the Obot MCP Gateway to version v0.21.1 or later. The patch introduces fundamental architectural changes to the authorization routing logic that cannot be replicated via external configuration files. Administrators must deploy the updated binary or container image to ensure the /mcp-connect/ endpoint correctly enforces ownership and Access Control Rules.

In environments where immediate patching is not technically feasible, administrators possess no viable configuration workarounds within the application itself. Mitigating the risk temporarily requires network-level intervention. Security teams can deploy Web Application Firewall (WAF) rules to restrict access to the /mcp-connect/ URI path based on specific IP addresses or require mandatory multi-factor authentication at the reverse proxy layer before the request reaches the Obot gateway.

Organizations should initiate proactive detection efforts by auditing HTTP access logs and application logs. Security analysts must search for successful GET requests to /mcp-connect/{id} endpoints and cross-reference the authenticated user ID associated with the request against the explicit owners or authorized users of the corresponding MCP server. Discrepancies between the requesting user and the authorized user list indicate active exploitation of this vulnerability.

Official Patches

Obot Platformv0.21.1 Release Notes
Obot PlatformPatch Diff for v0.21.1

Technical Appendix

CVSS Score
9.3/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L

Affected Systems

Obot MCP Gateway

Affected Versions Detail

Product
Affected Versions
Fixed Version
Obot MCP Gateway
Obot Platform
< 0.21.1v0.21.1
AttributeDetail
CWE IDCWE-285
Attack VectorNetwork
CVSS Score9.3
Privileges RequiredLow (Authenticated)
Impact ContextChanged Scope (Access to external tools/data)
Patch StatusPatched in v0.21.1

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1212Exploitation for Credential Access
Credential Access
CWE-285
Improper Authorization

Improper Authorization in routing logic allows bypass of access control checks.

Vulnerability Timeline

Vulnerability identified and reported.
2025-05-01
Fix committed and release v0.21.1 published.
2025-05-01
Security Advisory GHSA-vw82-7fv8-r6gp published.
2025-05-01

References & Sources

  • [1]GitHub Security Advisory: GHSA-vw82-7fv8-r6gp
  • [2]Obot Repository Advisory

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•24 minutes ago•CVE-2026-72807
8.8

CVE-2026-72807: Second-Order SQL Injection via Attribute View Templates in SiYuan

CVE-2026-72807 is a second-order SQL injection vulnerability in SiYuan versions prior to v3.7.4. It resides in the dynamic evaluation of Attribute View (AV) template columns, which expose unsafe template functions. An attacker can exploit this by distributing a malicious SiYuan package that executes arbitrary SQL queries on the victim's local database.

Amit Schendel
Amit Schendel
1 views•7 min read
•about 1 hour ago•CVE-2026-72806
5.8

CVE-2026-72806: Missing Authorization in SiYuan Attribute View Rendering Leads to Information Disclosure

An authorization bypass vulnerability in SiYuan prior to v3.7.4 allows unauthenticated remote attackers to access rows, block IDs, and custom attributes of password-protected documents via the attribute view rendering endpoint.

Alon Barad
Alon Barad
1 views•7 min read
•about 2 hours ago•CVE-2026-72805
6.9

CVE-2026-72805: Missing Authorization in SiYuan Note Block APIs Leads to Information Disclosure

SiYuan Note versions before v3.7.4 fail to enforce publish-access checks on several block API endpoints. This vulnerability allows anonymous readers or authorized accounts with low-privileged roles to retrieve sensitive document titles, ancestor block content snippets, reference text, and path metadata for publish-forbidden or password-protected documents by supplying target block IDs.

Alon Barad
Alon Barad
4 views•6 min read
•about 3 hours ago•CVE-2026-72804
9.2

CVE-2026-72804: Authentication Bypass and Sensitive Information Exposure in SiYuan Graph Endpoints

SiYuan before version 3.7.4 contains an authentication bypass vulnerability within its graph visualization API endpoints, allowing unauthenticated remote attackers to extract sensitive node metadata and content from password-protected documents.

Alon Barad
Alon Barad
3 views•7 min read
•about 4 hours ago•CVE-2026-72802
6.9

CVE-2026-72802: Sensitive Information Disclosure via Administrative Asset Resolvers in SiYuan Note

SiYuan Note versions prior to v3.7.4 contain an information disclosure vulnerability in the `/api/asset/resolveAssetPath` endpoint. This endpoint returns absolute backend filesystem paths unmodified to CheckAuth-only requests. Low-privileged users or unauthenticated readers under publish mode can exploit this to leak the local directory layout, operating system username, and overall host deployment structure.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 5 hours ago•CVE-2026-72801
8.7

CVE-2026-72801: Information Disclosure of Cryptographic Key Material in SiYuan

An access control vulnerability in the SiYuan personal knowledge management platform before version v3.7.4 exposes notebook encryption parameters to unauthenticated remote attackers. When the platform is configured in Publish Mode, specific API endpoints fail to enforce authorization checks. This access failure leaks key-derivation materials, password verifiers, and wrapped database keys to anonymous network clients.

Amit Schendel
Amit Schendel
3 views•6 min read