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



CVE-2026-88006

CVE-2026-88006: Incorrect Authorization in Open WebUI OAuth Token Exchange

Amit Schendel
Amit Schendel
Senior Security Researcher

Sep 11, 2026·6 min read·16 visits

Executive Summary (TL;DR)

Open WebUI's token exchange endpoint bypassed Identity Provider role checks, letting demoted or revoked users access the application with stale, cached database privileges.

An incorrect authorization vulnerability in Open WebUI allows users to bypass Identity Provider (IdP) role revocations and demotions. Prior to version 0.11.1, the OAuth token exchange endpoint failed to execute user synchronization and group mapping checks, enabling users with active provider tokens to establish sessions with their cached, stale database roles.

Vulnerability Overview

Open WebUI is a self-hosted, extensible AI interface designed to orchestrate and serve large language models. To support enterprise-scale deployments, the application integrates OAuth and OpenID Connect (OIDC) protocols for decentralized user authentication. This architecture enforces access control policies by mapping central Identity Provider (IdP) groups and claims to local application roles, such as administrative or standard permissions.

The vulnerability designated as CVE-2026-88006 resides in the handling of the OAuth token exchange mechanism within versions 0.8.0 through 0.11.1. Specifically, the application implements two distinct flows to authenticate users via OAuth: an interactive browser-based callback flow and a direct token exchange API endpoint. The /token/exchange endpoint allows clients to obtain native session tokens by presenting a valid IdP access token directly to the backend.

This API endpoint failed to perform the necessary authorization and role mapping updates that occur during the standard interactive login process. Consequently, the application trusted stale local database records to establish user privileges. This flaw constitutes an incorrect authorization vulnerability classifiable under CWE-863, leading to potential privilege escalation or unauthorized persistence.

Root Cause Analysis

The core authorization failure stems from a design asymmetry between the interactive OAuth callback handler (handle_callback) and the API-driven token exchange handler (token_exchange). When a user logs in interactively, the handle_callback routine retrieves the latest user claims from the configured IdP. It then processes role definitions dynamically by comparing the user's IdP groups against configured environment variables such as OAUTH_ALLOWED_ROLES and OAUTH_ADMIN_ROLES.

In contrast, the pre-patch implementation of the token_exchange API endpoint in backend/open_webui/routers/auths.py omitted these evaluation passes. Upon receiving a valid provider access token, the system resolved the user entry in the local database and immediately issued a session token. No calls were made to execute the role update and user synchronization routines.

As a result, if an administrator modified a user's permissions on the Identity Provider—such as demoting an administrative account to a standard user or removing them from the allowed user list—the change was never propagated through the token exchange route. The affected user could bypass administrative revocation. By directly calling the /token/exchange endpoint with their IdP token, they could obtain an active session with their cached local roles, retaining full administrative access.

Code Analysis

To understand the vulnerability, analyze the logic flow of the pre-patch token exchange routine. The endpoint verified the validity of the incoming OAuth token and checked for the existence of the corresponding database user. Once found, it returned the session immediately, skipping the entire block of synchronization functions.

The remediation introduced in commit d799e81edbdc971c6deb096b6474cd95b93504bf modularized the synchronization code block. The patch extracted user role updates, name updates, email updates, and picture updates from handle_callback in backend/open_webui/utils/oauth.py into a unified method named update_user_from_oauth. This method verifies if the user's role has changed based on incoming IdP claims and updates the database records accordingly.

The endpoint in backend/open_webui/routers/auths.py was subsequently updated to invoke update_user_from_oauth and update_user_groups before calling create_session_response. This ensures that every entry point that translates an external OAuth identity into an internal session executes identical authorization validations. The logic now prevents the reuse of stale permissions.

Exploitation & Scenario Analysis

Exploitation of CVE-2026-88006 does not require sophisticated techniques, but relies on a specific sequence of administrative actions on the external Identity Provider. The primary prerequisite is that a target user must have previously logged into the Open WebUI instance with elevated permissions (such as the admin role). Following this initial login, the user's role is cached in the local database.

If the enterprise administrator subsequently revokes the user's administrative privileges or removes them from the allowed group on the central IdP, the restriction should take immediate effect. However, a malicious actor possessing the active provider access token can bypass this revocation. Instead of using the standard web login interface, the attacker sends a structured HTTP POST request directly to the /token/exchange endpoint of the Open WebUI instance.

The payload contains the valid IdP access token. Because the endpoint does not run the role synchronization logic, it matches the token to the database user and issues a JSON Web Token (JWT) matching the user's cached database state. The attacker receives an active session possessing administrative privileges, effectively escalating their access beyond the limits defined by the Identity Provider.

Technical Impact Assessment

The technical impact of this vulnerability is assessed as Medium, with a CVSS v3.1 base score of 6.5. This classification reflects a partial authorization bypass rather than an unauthenticated remote code execution flaw. The attack vector is Network, and the complexity is Low, as no user interaction is required to trigger the incorrect authorization behavior.

The confidentiality and integrity impacts are both rated as Low because the scope of the exploit is limited to the permissions previously held by the target user. An attacker cannot escalate their privileges to a state they never possessed unless they manipulate the IdP configuration directly. However, in enterprise environments where accounts are systematically decommissioned or demoted, the persistence of administrative capabilities constitutes a significant risk.

Moreover, the failure to synchronize group mappings means that data governance policies mapped to user groups are not enforced. Unauthorized users may retain access to sensitive corporate knowledge bases, proprietary AI models, and administrative panels. This compromises the integrity of the local authorization boundary.

Remediation & Detection

The primary mitigation for this vulnerability is upgrading the Open WebUI installation to version 0.11.1 or higher. The patch correctly integrates the synchronization routine into the token exchange endpoint, closing the authorization gap. Administrators can download the patched release from the official GitHub repository.

For deployments where immediate upgrading is not feasible, administrators should audit local user roles manually. This involves comparing the list of active administrators in the Open WebUI database against the current group memberships defined in the enterprise OIDC provider. Any accounts that show discrepancies must be corrected manually via the administrative panel.

Additionally, organizations should configure short expiration times (Time-To-Live) for access tokens issued by their Identity Providers. Because Open WebUI only validates the token during the initial exchange, limiting the lifetime of the IdP-issued token reduces the window of opportunity for an attacker to leverage an active token against the vulnerable endpoint.

Fix Analysis (1)

Technical Appendix

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

Affected Systems

Open WebUI

Affected Versions Detail

Product
Affected Versions
Fixed Version
Open WebUI
Open WebUI
>= 0.8.0, < 0.11.10.11.1
AttributeDetail
CWE IDCWE-863 (Incorrect Authorization)
Attack VectorNetwork
CVSS v3.1 Score6.5
ImpactPartial Privilege Escalation / Authorization Bypass
Exploit StatusNone/Unproven
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-863
Incorrect Authorization

The software performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly execute the authorization check, allowing attackers to bypass intended security policies.

Vulnerability Timeline

Fix Commit authored and pushed to the repository
2026-08-17
Official GitHub Advisory published
2026-09-10
Vulnerability parsed and published in the National Vulnerability Database (NVD)
2026-09-10

References & Sources

  • [1]GitHub Security Advisory GHSA-wvm9-9g5j-623f
  • [2]Remediating Commit d799e81edbdc971c6deb096b6474cd95b93504bf
  • [3]Official Release v0.11.1
  • [4]CVE.org Record

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

•1 day ago•CVE-2026-115895
8.8

CVE-2026-115895: Code Injection via Unsanitized Import Alias in Happy DOM ECMAScript Module Compiler

CVE-2026-115895 is a high-severity code injection vulnerability (CWE-94) in the happy-dom npm package prior to version 21.0.4. The vulnerability exists within the ECMAScriptModuleCompiler component, which transforms ECMAScript module syntax into executable Node.js functions when JavaScript evaluation is enabled. Due to an incomplete fix for CVE-2026-33943, the compiler failed to validate local named import aliases against legal JavaScript identifier rules. Attackers supplying crafted module imports—specifically utilizing destructuring default initializers alongside JSON module attributes—can inject arbitrary JavaScript expressions directly into the host Node.js runtime context.

Amit Schendel
Amit Schendel
7 views•10 min read
•2 days ago•CVE-2026-115883
6.0

CVE-2026-115883: Cross-Namespace Access via Dot-Delimited Labels in LangGraph Postgres and SQLite Stores

An improper input validation and authorization bypass vulnerability exists in the LangGraph storage layer affecting langgraph, langgraph-checkpoint-postgres, and langgraph-checkpoint-sqlite. Because relational store implementations serialize namespace tuples into dot-delimited strings without validating labels on read, search, delete, and batch operations, an attacker who controls a namespace label can inject periods (.) to traverse namespace boundaries and access, modify, or delete data belonging to other namespaces.

Amit Schendel
Amit Schendel
8 views•9 min read
•2 days ago•CVE-2026-115886
6.5

CVE-2026-115886: Unauthenticated Server-Side Request Forgery and Unsafe Reflection in MLflow Scorer Evaluation Endpoints

CVE-2026-115886 (GHSA-2wqp-q3c6-ccj5) is a Server-Side Request Forgery (SSRF) and Unsafe Reflection vulnerability in MLflow versions 3.12.0rc0 prior to 3.17.0. Unauthenticated REST API endpoints accept serialized third-party scorer JSON payloads that are dynamically deserialized and reflectively instantiated without sanitizing constructor keyword arguments. When optional dependencies such as trulens and trulens-providers-litellm are installed, attackers can inject egress-steering arguments into the scorer payload, forcing the MLflow server to dispatch outbound HTTP requests to arbitrary internal destinations or cloud metadata services.

Alon Barad
Alon Barad
10 views•10 min read
•2 days ago•CVE-2026-113872
7.5

CVE-2026-113872: Unauthenticated Process Crash in Express Multer via Late Busboy Stream Resumption

CVE-2026-113872 (GHSA-q7qp-rjg7-q26m) is a high-severity denial-of-service vulnerability affecting the multer multipart/form-data upload middleware for Node.js and Express in versions 2.0.0 through 2.4.0. When an endpoint is configured to accept multiple files using an asynchronous fileFilter callback, a crafted, truncated multipart HTTP request can trigger an unhandled error event on the underlying busboy stream parser after request teardown has already completed. Because all error listeners are stripped during teardown, Node.js treats the resulting error event as an uncaught exception and immediately terminates the server process.

Amit Schendel
Amit Schendel
8 views•12 min read
•2 days ago•CVE-2026-115897
2.1

CVE-2026-115897: Cross-Site Scripting via Function Body Boundary Bypass in serialize-javascript

CVE-2026-115897 (also tracked as GHSA-m5mm-p8h7-m29v and aliased as CVE-2026-115754) is a Cross-Site Scripting (XSS) vulnerability in the Yahoo serialize-javascript npm package prior to version 7.1.3. The flaw exists in the regular expression used by escapeFunctionBody() to neutralize HTML script closing tags within serialized JavaScript functions. Because function bodies are sanitized in isolation before structural formatting is applied, a function whose string representation terminates directly with the sequence '</script' bypasses the positive lookahead check. When combined with serialization formatting options that introduce whitespace delimiters and a subsequent property that supplies a closing bracket, an attacker can prematurely terminate an enclosing HTML <script> block and inject arbitrary HTML or JavaScript into the rendered document.

Amit Schendel
Amit Schendel
7 views•13 min read
•2 days ago•CVE-2026-109841
5.9

CVE-2026-109841: Subresource Integrity Verification Bypass in Node.js Undici

CVE-2026-109841 is a Subresource Integrity (SRI) verification bypass vulnerability in undici, the official HTTP/1.1 and HTTP/2 client library for Node.js that powers the global fetch() implementation. The flaw stems from improper handling of case sensitivity (CWE-178) when validating cryptographic hash algorithm tokens within SRI metadata. Because undici compared incoming algorithm identifiers against a strictly lowercase set without prior ASCII-lowercase normalization, valid uppercase or mixed-case tokens such as SHA256- or Sha384- were treated as unrecognized algorithms and discarded. Under SRI forward-compatibility rules, discarding all provided tokens results in an empty integrity list, causing undici to fail open and accept tampered HTTP response bodies without cryptographic verification.

Alon Barad
Alon Barad
11 views•9 min read