
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-31944 is an OAuth callback session-binding vulnerability in LibreChat, an open-source ChatGPT-like platform, that allows an authenticated attacker to steal a victim's OAuth tokens and take over their linked MCP (Model Context Protocol) services. The flaw affects LibreChat versions 0.8.2 through 0.8.2-rc3 and was published on March 13, 2026. It carries a CVSS v3.1 base score of 7.6 (High) (GitHub Advisory, Red Hat CVE). The vulnerability is fixed in version 0.8.3-rc1 (GitHub Advisory).
The root cause is classified as CWE-306 (Missing Authentication for Critical Function): the MCP OAuth callback route (GET /:serverName/oauth/callback in api/server/routes/mcp.js, around line 108) lacks authentication middleware, unlike the /oauth/initiate endpoint which enforces requireJwtAuth (GitHub Advisory). The handler resolves user identity exclusively from the OAuth state parameter (used as a flowId to retrieve cached flow state), never reading req.user or any session/cookie to verify who is currently in the browser. As a result, MCPTokenStorage.storeTokens() always writes tokens to the flow initiator's account (flowState.userId), regardless of which user's browser completes the IdP redirect. This constitutes an OAuth session fixation / cross-user token binding flaw, enabling a social-engineering-based token theft attack (GitHub Advisory).
A successful attack results in the victim's OAuth access tokens for third-party services (e.g., Atlassian/Jira/Confluence, Microsoft Outlook) being stored on the attacker's LibreChat account, granting the attacker full read access to the victim's data on those services and limited write capability within the MCP integration's OAuth scopes (GitHub Advisory). The scope change is cross-boundary — the impact extends beyond LibreChat itself into external OAuth providers, potentially exposing emails, calendar data, Jira tickets, and other sensitive business data. There is no direct availability impact, and the attacker cannot modify the victim's LibreChat credentials or account data directly (GitHub Advisory).
A detailed 5-step proof-of-concept is publicly available in the GitHub Security Advisory, describing the exact attack flow with specific URLs and parameters (GitHub Advisory). The attacker must hold a valid LibreChat account (low privilege required) and must socially engineer the victim into clicking a crafted authorization URL; in some IdP configurations where prior consent exists, the victim may not need to interact beyond clicking the link. The EPSS score is 0.028% (low automated exploitation probability), and there is no evidence of in-the-wild exploitation or CISA KEV catalog listing at this time (Feedly). No threat actor attribution has been reported.
state parameter tied to the attacker's flow session./api/mcp/{serverName}/oauth/callback?code=...&state=...). Because the callback has no session validation, LibreChat exchanges the authorization code for tokens and stores them under the attacker's account (flowState.userId)./api/mcp/{serverName}/oauth/callback originating from IP addresses or user agents inconsistent with the account that initiated the OAuth flow; OAuth callback completions where the initiating session and completing session originate from different IPs or browsers.GET /:serverName/oauth/callback) completed by a browser with no authenticated session (req.user absent or mismatched) while tokens are stored for a different user ID; multiple OAuth flow completions for the same state/flowId from different source IPs.MCPTokenStorage for a user account where the token was obtained from an IP or device not associated with that user's normal activity; newly linked MCP service connections on a user account that the account owner did not initiate.The primary remediation is to upgrade LibreChat to version 0.8.3-rc1 or later, which fixes the vulnerability (GitHub Advisory). The fix should add authentication middleware (e.g., requireJwtAuth) to the OAuth callback route and verify that the authenticated user matches flowState.userId before storing tokens. As an interim workaround for deployments that cannot immediately upgrade, administrators should consider disabling MCP OAuth integrations or restricting access to the MCP OAuth callback endpoint. Additionally, administrators should audit existing MCP token connections and instruct users to revoke any unexpected OAuth authorizations on linked services such as Atlassian and Outlook (GitHub Advisory).
The vulnerability was discussed on Mastodon/Infosec.exchange shortly after disclosure, and coverage appeared on security advisory aggregators including Yazoul, CCN-CERT (Spain's national cybersecurity center), and CyberHub Blog (Feedly). Red Hat tracked the CVE in their security database, indicating broader enterprise awareness (Red Hat CVE). No major vendor statements beyond the LibreChat project's own advisory have been identified, and community reaction has been moderate given the niche deployment base of LibreChat's MCP OAuth feature.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."