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-59222

CVE-2026-59222: Sensitive Data Exposure in Open WebUI Channels API

Alon Barad
Alon Barad
Software Engineer

Jul 24, 2026·4 min read·41 visits

Executive Summary (TL;DR)

The Open WebUI channels member endpoint leaked full user profile configurations. This let any authenticated user inside a shared channel steal private external API keys and webhooks belonging to other members, including administrators.

Open WebUI versions starting from 0.7.0 up to, but excluding, 0.10.0 are vulnerable to a sensitive data exposure flaw in the channels API. The GET /api/v1/channels/{id}/members endpoint exposes full user database representations, including private API keys and webhook configurations. This allows authenticated users to extract private credentials of other members within the same channel.

Vulnerability Overview

Open WebUI is an extensible, self-hosted AI platform designed to provide a user-friendly interface for interacting with large language models. The platform features user authentication, workspace/channel management, and integration with external API services and tool servers.

The vulnerability classified under CVE-2026-59222 represents a case of excessive data exposure during API serialization. Specifically, the API endpoint responsible for listing members of a communication channel (GET /api/v1/channels/{id}/members) inadvertently leaks the full configuration schema of each user.

This vulnerability allows authenticated users to retrieve sensitive details of any other user sharing a channel. Exposed details include private configurations and access keys for external services, potentially leading to unauthorized access to downstream resources.

Root Cause Analysis

The root cause of this flaw is the over-serialization of the user database model in the backend API router. The platform uses FastAPI and Pydantic for API route definition and data validation.

In affected versions, the route handler get_channel_members_by_id returned a UserListResponse. This response schema mapped user objects to the generic UserModelResponse profile, which compiled all user data directly from the raw database model.

The raw database model contains a settings block containing integration secrets, such as external tool server bearer tokens (toolServers[].key) and private webhook URLs. Because the schema lacked explicit field filtering for sub-resources, the application serialized and transmitted this sensitive data to the client.

Code Analysis

The vulnerability exists in the backend/open_webui/routers/channels.py file. The original endpoint serialized database entities using a wholesale dictionary dump.

# Vulnerable Serialization Path
return {
    'users': [UserModelResponse(**u.model_dump(), is_active=Users.is_active(u)) for u in fetched_users],
    'total': total,
}

The call to u.model_dump() converts the entire database record, including the nested settings dictionary, into the response object. The target UserModelResponse Pydantic schema did not exclude these nested elements, meaning they were exposed in the final JSON output.

The fix introduced a dedicated schema called ChannelMemberResponse that explicitly declares which fields are allowed in the API response. The patch replaces the blanket model_dump() with a strict manual mapper.

class ChannelMemberResponse(BaseModel):
    id: str
    email: str
    name: str
    role: str
    profile_image_url: str | None = None
    presence_state: str | None = None
    status_emoji: str | None = None
    status_message: str | None = None
    status_expires_at: int | None = None
    is_active: bool = False
 
def serialize_channel_member(user: UserModel) -> ChannelMemberResponse:
    return ChannelMemberResponse(
        id=user.id,
        email=user.email,
        name=user.name,
        role=user.role,
        profile_image_url=user.profile_image_url,
        presence_state=user.presence_state,
        status_emoji=user.status_emoji,
        status_message=user.status_message,
        status_expires_at=user.status_expires_at,
        is_active=Users.is_active(user),
    )

By passing each user record through serialize_channel_member, only the specified fields are retained. The backend drops any unmapped fields, such as settings or credentials, before serialization.

Exploitation Methodology

To exploit this vulnerability, an attacker must have a valid user account on the target Open WebUI instance. The attacker must also share at least one channel with the targeted users, such as an instance administrator.

An attacker first obtains the unique identifier of the shared channel. This can be extracted from the browser's address bar or via active network inspection of the client-side API requests.

The attacker then executes a direct HTTP GET request to the /api/v1/channels/{id}/members endpoint. The attacker includes their valid session JSON Web Token (JWT) in the Authorization header.

GET /api/v1/channels/d3b07384-d113-4ec5-a5af-72013840ffcc/members HTTP/1.1
Host: openwebui.local
Authorization: Bearer <attacker_jwt>

The server responds with a JSON array containing the user objects. The attacker parses the JSON body to locate the settings path, extracting the credentials for integrated tools or external servers.

Impact Assessment

The primary impact of this vulnerability is the compromise of confidential integration credentials. Exposed keys can allow attackers to access external private APIs and tools managed by the victim.

If an administrator is a member of the channel, their credentials and system webhooks are exposed. Attackers can leverage these webhooks to send forged messages or retrieve private operational data.

The vulnerability has been assigned a CVSS score of 6.5 (Medium) under CVSS v3.1, reflecting high confidentiality impact with low privileges required. No integrity or availability impact is directly associated with this vector.

Remediation and Prevention

Administrators must upgrade Open WebUI instances to version 0.10.0 or later to resolve this vulnerability. The updated versions implement strict data-transfer-object mapping that prevents data leakage.

For systems where an immediate upgrade is not feasible, administrators should audit active channel memberships. Restricting channel access and removing inactive users can limit the exposure surface.

Developers must implement strict, white-list-based schemas for all public endpoints. Avoiding generic database-model serialization prevents accidental exposure of backend fields.

Official Patches

open-webuiFixing commit for over-serialization of user channel models
open-webuiOfficial Release Notes containing the fix

Fix Analysis (1)

Technical Appendix

CVSS Score
6.5/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
EPSS Probability
0.32%
Top 76% most exploited

Affected Systems

Open WebUI

Affected Versions Detail

Product
Affected Versions
Fixed Version
open-webui
open-webui
>= 0.7.0, < 0.10.00.10.0
AttributeDetail
CWE IDCWE-200
Attack VectorNetwork
CVSS6.5
EPSS0.00322
ImpactConfidentiality
Exploit StatusNone
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1005Data from Local System
Collection
T1552Unsecured Credentials
Credential Access
CWE-200
Exposure of Sensitive Information to an Unauthorized Actor

The product exposes sensitive information to an actor who is not authorized to have access to that information.

Vulnerability Timeline

Fix commit fbcdcf1 applied to open-webui backend
2026-06-16
Security Advisory GHSA-gh7p-78x6-jw6m published
2026-07-09
Open WebUI v0.10.0 release launched containing patch
2026-07-09
NVD CVSS evaluation and mapping completed
2026-07-10

References & Sources

  • [1]GitHub Security Advisory GHSA-gh7p-78x6-jw6m
  • [2]NVD Vulnerability Details CVE-2026-59222
  • [3]CVE Official Record CVE-2026-59222

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-107844
5.3

CVE-2026-107844: Path Traversal Vulnerability in Contao ImagesController

A path traversal vulnerability (CWE-22) in Contao CMS allows unauthenticated remote attackers to bypass directory boundary restrictions in ImagesController and access files within the project directory.

Amit Schendel
Amit Schendel
8 views•5 min read
•1 day ago•CVE-2026-107848
3.5

CVE-2026-107848: Cross-Site Request Forgery (CSRF) in Contao Backend Actions via GET Requests

Contao Open Source CMS versions 4.0.0 through 5.3.49 and 5.4.0-RC1 through 5.7.11 contain a Cross-Site Request Forgery (CSRF) vulnerability in backend parameter handling. The `RequestTokenListener` component validates anti-CSRF tokens solely for HTTP POST requests, while GET-based declarative guards run only when an `act` parameter is present in the query string. Consequently, custom backend actions dispatched via alternative parameters such as `key=` can execute without CSRF token verification when triggered by an authenticated user.

Amit Schendel
Amit Schendel
7 views•5 min read
•1 day ago•CVE-2026-107843
5.3

CVE-2026-107843: Unthrottled Activation Email Resend and Account Enumeration in Contao CMS

Contao CMS versions 4.1.0 through 5.3.49 and 5.4.0-RC1 through 5.7.11 fail to validate form submission tokens and enforce rate limiting when processing activation email resend requests via HTTP POST, enabling resource exhaustion and account state enumeration.

Amit Schendel
Amit Schendel
8 views•4 min read
•1 day ago•CVE-2026-107842
5.3

CVE-2026-107842: Information Disclosure via Stale Indexing in Contao Search Module

An information disclosure vulnerability in Contao CMS allows unauthenticated site visitors to view protected page titles, URLs, and text excerpts through search queries when protected page indexing is disabled after previously being enabled.

Amit Schendel
Amit Schendel
10 views•4 min read
•1 day ago•GHSA-G38J-7V97-X298
6.5

GHSA-G38J-7V97-X298: Missing Authorization Check in Vikunja CalDAV Task Relation Creation

In Vikunja prior to version 2.6.0, relation creation via the CalDAV endpoint fails to invoke the TaskRelation.CanCreate authorization check. This missing access control allows an authenticated user to establish unauthorized relationships and perform write operations against any task, provided its unique identifier (UID) is known.

Alon Barad
Alon Barad
12 views•5 min read
•1 day ago•GHSA-3HC7-R24J-RPWC
6.8

GHSA-3hc7-r24j-rpwc: Cross-Project Task Disclosure via Subtask Expansion in Vikunja

A cross-project information disclosure vulnerability in Vikunja allows authenticated users with read access to one project to view private task details from unauthorized projects via subtask expansion parameters.

Alon Barad
Alon Barad
9 views•5 min read