Hoch

Open WebUI's Insecure Message Access Breaks Authorization

  • Veröffentlicht: 11.05.2026
  • Aktualisiert: 11.10.2026 14:17

Description

There's an IDOR in the channels message management system that allows authenticated users to modify or delete any message within channels they have read access to. The vulnerability exists in the message update and delete endpoints, which implement channel-level authorization but completely lack message ownership validation.

While the frontend correctly implements ownership checks (showing edit/delete buttons only for message owners or admins), the backend APIs bypass these protections by only validating channel access permissions without verifying that the requesting user owns the target message. This creates a client-side security control bypass where attackers can directly call the APIs to modify other users' messages.

The vulnerability affects both message content modification and deletion, allowing users to tamper with message integrity and audit trails in collaborative channel environments.

Source - Sink Analysis

Source: User-controlled message_id parameter in URL path

Call Chain:

  1. FastAPI route handlers update_message_by_id() (line 450) and delete_message_by_id() (line 630) in backend/open_webui/routers/channels.py
  2. Channel-level authorization check: has_access(user.id, type="read", access_control=channel.access_control) at lines 457 and 637
  3. Message retrieval: Messages.get_message_by_id(message_id) at lines 467 and 647
  4. Channel ID validation: if message.channel_id != id: at lines 472 and 652
  5. Missing: Message ownership validation (message.user_id == user.id)
  6. Sink: Messages.update_message_by_id(message_id, form_data) at line 476 or Messages.delete_message_by_id(message_id) at line 658 - modifies any message without ownership verification

Proof of Concept

  1. Deploy Open WebUI with channels enabled (ENABLE_CHANNELS=true)
  2. Create scenario:
    • User A creates a channel and grants User B read access
    • User A posts a message in the channel
    • User B observes the message_id from the frontend
  3. Exploit: User B sends direct API requests bypassing frontend controls:

Message Update:

bash
curl -X POST "http://localhost:8080/api/v1/channels/{channel_id}/messages/{victim_message_id}/update" \
     -H "Authorization: Bearer {attacker_token}" \
     -H "Content-Type: application/json" \
     -d '{"content": "Malicious content injected by attacker"}'

Message Deletion:

bash
curl -X DELETE "http://localhost:8080/api/v1/channels/{channel_id}/messages/{victim_message_id}/delete" \
     -H "Authorization: Bearer {attacker_token}"
  1. Result: Victim's message is modified or deleted despite User B only having read permissions

Impact

  • Users can modify other users' message content within shared channels
  • Read-only users gain write/delete capabilities over other users' content

Remediation

Implement proper message ownership validation in the update and delete endpoints by adding ownership checks that follow the established security pattern used throughout the codebase. First, add a validation condition after the existing message retrieval to ensure only message owners or admins can modify messages: if user.role != "admin" and message.user_id != user.id and not has_access(user.id, type="write", access_control=channel.access_control) then raise a 403 Forbidden exception. Second, change the existing permission check from type="read" to type="write" for both update and delete operations to align with the access control model used in other routers (notes, prompts, knowledge, etc.).

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
Python (PyPI) open-webui < 0.6.19 0.6.19

Verweise

CVSS-Wert 7.1/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
Schwäche (CWE)
CWE-862
Plattform
Python (PyPI)
Paket
open-webui
Veröffentlicht
11.05.2026
Aktualisiert
11.10.2026 14:17

Quellen und Lizenzen

OSV / GitHub Advisory Database - PYSEC-2026-2746 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-jxwr-g6r6-j3fx - CC BY 4.0

Schwachstellenhistorie: open-webui

Alle veröffentlichten Schwachstellen dieses Pakets (Python (PyPI)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (161) im Archiv
Einträge insgesamt
161
Erste → letzte
08.2024 09.2026
Ohne Fix
11
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 1
  • Hoch 77
  • Mittel 75
  • Niedrig 8

Veröffentlichungen pro Jahr

  1. 2024: 3
  2. 2025: 21
  3. 2026: 137
Schweregrad:
  1. Hoch · 7.7 CVE-2026-59221 >= 0.9.6, < 0.10.0 0.10.0
  2. Hoch · 7.3 CVE-2026-59214 < 0.10.0 0.10.0
  3. Hoch · 8.7 CVE-2026-54011 < 0.9.6 0.9.6
  4. Hoch · 7.1 CVE-2026-45349 < 0.9.0 0.9.0
  5. Hoch · 7.7 CVE-2026-45303 < 0.6.5 0.6.5
  6. Open WebUI's Insecure Message Access Breaks Authorization dieser Eintrag
    Hoch · 7.1 CVE-2026-44569 < 0.6.19 0.6.19
  7. Hoch · 8.1 CVE-2026-44565 < 0.6.10 0.6.10
  8. Hoch · 7.3 CVE-2026-44566 < 0.1.124 0.1.124
  9. Hoch · 7.3 CVE-2026-44567 < 0.1.124 0.1.124
  10. Hoch · 7.3 CVE-2026-44549 < 0.8.0 0.8.0
  11. Kritisch · 9.1 CVE-2026-44551 < 0.9.0 0.9.0
  12. Hoch · 7.3 CVE-2026-44721 < 0.9.0 0.9.0
Mehr anzeigen (18) 60 von 78 angezeigt

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.