/

CVE-2026-101084

Severity:

CRITICAL RISK

(9.6)

Broken Access Control (CWE-639) in obot MCP Endpoint

CVE-2026-101084

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-639

Impact:

Unauthorized access and manipulation of protected backend systems

Severity:

CRITICAL RISK

(9.6)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

obot fails to consistently enforce Access Control Rules on the /mcp-connect endpoint, allowing an authenticated user to connect to a restricted MCP server when they know its server ID. This authorization bypass may let attackers invoke MCP tools against sensitive backend systems using stored OAuth credentials.

Affected context

The vulnerability occurs in obot deployments where:

  • The /mcp-connect endpoint is exposed to authenticated users
  • MCP servers are protected by Access Control Rules
  • Authorization is not independently enforced when a server is selected by ID
  • Stored OAuth credentials are available to the connected MCP server

Risk depends on the permissions associated with the affected MCP servers and credentials.

Exploit preconditions

  • Attack surface: The authenticated /mcp-connect API endpoint
  • Required access: Any valid authenticated user account
  • Required knowledge: The identifier of a restricted MCP server
  • Trigger point: An MCP connection request that references the restricted server
  • Why exploitation is possible: The endpoint permits connection based on the server ID without reliably applying the server's Access Control Rules

Why this happens

The underlying flaw is an authorization enforcement gap in an object-selection endpoint. The application uses a user-supplied server identifier to select an MCP server but does not consistently verify that the requesting user is authorized to access that specific object. This maps to CWE-639: Authorization Bypass Through User-Controlled Key, because access control can be bypassed by manipulating or supplying a valid identifier for a protected resource.

Potential impact

  • Authenticated users could connect to restricted MCP servers
  • Attackers may invoke tools against sensitive backend systems
  • Stored OAuth credentials could be used within the permissions granted to the MCP integration
  • Confidential data may be exposed or modified
  • Backend workflows or connected services could be disrupted
  • The incident could enable lateral movement into systems reachable through MCP tools

General mitigation guidance

Mitigation generally focuses on enforcing authorization at every resource access boundary rather than relying on endpoint reachability or identifier knowledge.

Common defensive patterns include:

  • Performing server-specific authorization checks after resolving the requested resource
  • Applying deny-by-default policy evaluation for MCP connections
  • Treating resource identifiers as selectors, not authorization evidence
  • Revalidating permissions before each sensitive tool invocation where appropriate
  • Limiting OAuth scopes and backend privileges to the minimum required
  • Separating user identity, server identity, and credential authorization decisions
  • Logging denied and permitted MCP connection attempts for accountability

These controls reduce the impact of an authorization regression or exposed server identifier.

How teams detect issues like this

Organizations can identify similar issues through:

  • Static analysis for resource lookups that use request-controlled identifiers without nearby authorization checks
  • Code review of endpoint handlers that resolve objects before policy evaluation
  • Tests covering authorized, unauthorized, and cross-tenant access to every MCP server
  • Negative authorization tests using valid identifiers belonging to other users or groups
  • API policy enforcement requiring object-level authorization before connection establishment
  • Monitoring for unusual connections to restricted servers or unexpected use of stored OAuth credentials

Automated security testing and code review tools may help identify missing object-level authorization checks.

Sources

SourceLink
github.comgithub.com/obot-platform/obot/security/advisories/GHSA-vw82-7fv8-r6gp
vulncheck.comvulncheck.com/advisories/obot-before-0.21.1-authorization-bypass-via-mcp-connect

Frequently asked

questions

Yes, when the affected MCP connection endpoint is reachable by an authenticated user. Exploitation does not necessarily require administrative privileges.

The attacker generally needs a valid obot account and the identifier of a restricted MCP server. Knowledge of the identifier alone should not grant access, but the missing authorization check can make it sufficient.

Enforce object-level authorization on every MCP server connection request, using the authenticated principal and the server's current policy. Do not treat a server ID as proof of permission.

Use deny-by-default authorization, add negative tests for cross-user and cross-tenant access, minimize OAuth scopes, and monitor access to protected MCP resources.

Find out what's already
exploitable in your codebase.