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

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

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

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

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

Категории

Все категории
Loading categories
n8n-databricks-path-join — Proof-of-concept для path-traversal (CWE-22) в n8n в узлах Databricks: неаутентифицированный ввод через webhook выходит за пределы пути Genie и приводит к утечке секретов PAT рабочего пространства, с лабораторией на loopback. | Kitploit
Инструменты/GitHubGitHub/abraxas/n8n-databricks-path-join
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииВиртуализация для безопасностиТестирование на ПроникновениеЛаборатории и Практика
GitHub
abraxas/n8n-databricks-path-join

n8n-databricks-path-join

Proof-of-concept для path-traversal (CWE-22) в n8n в узлах Databricks: неаутентифицированный ввод через webhook выходит за пределы пути Genie и приводит к утечке секретов PAT рабочего пространства, с лабораторией на loopback.

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

Популярное

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

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

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

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

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

Abraxas Labs - n8n-databricks-path-join

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  n8n-databricks-path-join

n8n-databricks-path-join

n8n 2.42.0 - n8n GmbH

GHSA-89p4-6h98-c7xm и GHSA-rqch-9jrh-cr8w добавили toPathSegment: encodeURIComponent плюс отклонение '' / . / ... getSpace.operation.ts конкатенирует spaceId в ${host}/api/2.0/genie/spaces/${spaceId}. Vector Search getIndex и Files downloadFile — тот же класс. LangChain VectorStoreDatabricks уже оборачивает путь индекса. WHATWG new URL делает остальное. ../ нормализуется. Databricks PAT рабочего процесса уходит вместе с ним.

Незаслуживающий доверия ввод из webhook превращается в GET /api/2.0/secrets/get под токеном рабочего пространства. Утечка учётных данных на Databricks, а не RCE на хосте n8n.

IDCVE пока нет
CWECWE-22
CVSSHigh: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Продуктn8n
Затронутовплоть до 2.42.0 (86c23326); родственник GHSA-89p4 / GHSA-rqch
Аутентификациябез аутентификации на webhook, если рабочий процесс жертвы принимал недоверенный ввод
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Что может сделать атакующий

Обратиться к публичному webhook, чату или HTTP-триггеру, который передаёт данные в Databricks Genie get-space (или Vector Search get-index, или Files download) с контролируемым атакующим идентификатором. Токен рабочего процесса затем выполняет GET к /api/2.0/secrets/get. Если этот токен может читать область (типичный PAT администратора рабочего пространства), вывод узла — это JSON со значением секрета value.

Токен без ACL на секреты всё равно получит 403; но это всё равно доказывает, что запрос ушёл за пределы /genie. Для скачивания файлов нужен более глубокий ../ (более длинный префикс). Нужна жертва, которая привязала недоверенный ввод к этому параметру. Заблокированный узел HTTP Request (allowedHttpRequestDomains: none) не заменяет кодирование идентификаторов Databricks.

Тот же продукт, родственный остаток: скрытая Function vm2.

Как я это нашёл

Тот же проход по остаткам, что и в лаборатории Function: десять поисков на [email protected] после волны GHSA от 16 сентября 2026 года. Поиск инъекций в узлы искал неполные родственные случаи GHSA-89p4 (идентификаторы ресурсов Public API) и GHSA-rqch (имя таблицы Supabase). Elastic, Adalo, Currents, сам узел n8n. Хелпер существует, потому что они уже проиграли эту битву. Databricks nodes-base его не вызывает.

Я не нацеливал это на реальное рабочее пространство. Мок лаборатории на :18203 отвечает на GET /api/2.0/secrets/get значением N8N-DBX-SECRET-WITNESS. n8n на :18202. Webhook dbx-space привязывает spaceId из JSON. Журнал доступа мока: GET /api/2.0/secrets/get?scope=s&key=k. Тело webhook содержит свидетеля.

Уже зафиксированные неверные повороты: запрос, остающийся под /api/2.0/genie/spaces/ (тогда .. кодировался — лаборатория требует, чтобы он ушёл); трактовка RCE на хосте n8n как SUCCESS; обращение к реальному рабочему пространству; обратная оболочка. Театр. Свидетель — это N8N-DBX-SECRET-WITNESS плюс строка запроса мока.

Лаборатория

cd lab
./run.sh

Цель — только http://127.0.0.1:18202 (n8n) и :18203 (мок). Хост учётных данных — это мок, а не реальное рабочее пространство.

webhook-http=200
mock-request-line=GET /api/2.0/secrets/get?scope=s&key=k
webhook-witness=True
mock-secrets-get=True
witness=N8N-DBX-SECRET-WITNESS
SUCCESS N8N-DBX-PATH-JOIN

Исправление

Оборачивайте каждый идентификатор пути Databricks с помощью toPathSegment, так же как VectorStoreDatabricks.

Ссылки

  • github.com/n8n-io/n8n тег [email protected]
  • getSpace.operation.ts · toPathSegment · DatabricksVectorStore.ts
  • Рядом исправлено: GHSA-89p4-6h98-c7xm · GHSA-rqch-9jrh-cr8w
  • Тот же продукт: n8n-function-vm2
  • CWE-22

Лицензия

GNU Affero GPL v3.0. См. LICENSE. Только лаборатория на loopback. Без гарантий.

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