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

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

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

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

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

Категории

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

CVE-2026-40987

CVE-2026-40987 PoC

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

Популярное

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

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

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

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

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

CVE-2026-40987: PoC обхода пути при удаленной синхронизации файлов в Spring Integration

Этот репозиторий содержит минимальный PoC для CVE-2026-40987, опубликованного в официальном бюллетене безопасности Spring.

  • Официальный бюллетень: https://spring.io/security/cve-2026-40987/
  • Официальное название: Remote-file synchronizer in Spring Integration writes server-supplied filename under localDirectory without canonicalization
  • Серьезность: High
  • CVSS v3.1: AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:L
  • Дата публикации: 2026-06-10

Краткое описание уязвимости

Синхронизатор удаленных файлов (remote-file synchronizer) в Spring Integration мог использовать имя файла, предоставленное удаленным сервером, как есть при формировании пути локального хранения. Если проверка канонического пути была недостаточной, вредоносный или скомпрометированный FTP/SFTP/SMB сервер мог вернуть имя файла, например ../escaped-by-ftp-list.txt, что позволяло записать файл за пределами настроенного localDirectory.

Согласно официальному бюллетеню, это проблема не только FTP, а относится к семейству синхронизаторов удаленных файлов FTP/SFTP/SMB в Spring Integration. Данный PoC использует для наиболее компактной и наглядной демонстрации того же уязвимого пути.

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

Затрагиваемые продукты и версии

Затрагиваемые продукты согласно официальному бюллетеню:

  • Spring Integration

Затрагиваемые версии:

  • 7.0.0 - 7.0.4
  • 6.5.0 - 6.5.8
  • 6.4.0 - 6.4.11
  • 6.3.0 - 6.3.14
  • 5.5.0 - 5.5.20
  • Более старые версии, которые больше не поддерживаются, также могут быть затронуты

Исправленные версии:

  • 7.0.5 или 7.0.4.1
  • 6.5.9 или 6.5.8.1
  • 6.4.12
  • 6.3.15
  • 5.5.21

Что демонстрирует этот PoC

Тест показывает два пути.

  1. SpringIntegrationRemoteFilePathTraversalTest

    • Непосредственно воспроизводит путь общего синхронизатора удаленных файлов Spring Integration.
    • Проверяет, создается ли путь к файлу за пределами настроенного локального каталога, если имя удаленного файла равно ../escaped-by-spring-integration.txt.
  2. SpringIntegrationFtpPathTraversalTest

    • Запускает небольшой вредоносный FTP-сервер внутри теста.
    • В ответе LIST FTP-сервера содержится ../escaped-by-ftp-list.txt.
    • Проверяет, что реальный FtpInboundFileSynchronizer из Spring Integration загружает этот файл как incoming/../escaped-by-ftp-list.txt и что итоговый файл создается за пределами каталога downloads.

Ключевой поток PoC выглядит следующим образом.

root@kitploit:~
configured localDirectory = <temp>/downloads
remote LIST filename      = ../escaped-by-ftp-list.txt
resulting local path      = <temp>/downloads/../escaped-by-ftp-list.txt
normalized location       = <temp>/escaped-by-ftp-list.txt

То есть можно записать файл за пределами целевого каталога загрузки приложения.

Как запустить

Windows:

root@kitploit:~
.\mvnw.cmd test

macOS/Linux:

root@kitploit:~
./mvnw test

Ожидаемый результат для уязвимых версий:

root@kitploit:~
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

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

Проверенные локально версии

Вы можете проверить несколько уязвимых версий с помощью следующих команд:

root@kitploit:~
.\mvnw.cmd "-Dspring-integration.version=6.4.10" test
.\mvnw.cmd "-Dspring-integration.version=6.5.8" test
.\mvnw.cmd "-Dspring-integration.version=7.0.4" test
.\mvnw.cmd "-Dspring-integration.version=7.1.0-RC1" test

Значение по умолчанию в этом репозитории — spring-integration.version=7.0.4.

Почему это опасно

Эта уязвимость позволяет злоумышленнику записывать подконтрольное ему содержимое в локальную файловую систему клиентского приложения. Злоумышленник должен быть не обычным HTTP-клиентом, а иметь возможность манипулировать ответами удаленного файлового сервера, которому приложение доверяет и который опрашивает.

Таким образом, существуют предварительные условия, но при их соблюдении возможны следующие последствия:

  • Создание или перезапись файлов внутри рабочего каталога приложения
  • Размещение файлов под контролем злоумышленника в каталоге пакетного ввода, корне веб-сервера, временном каталоге и т.д.
  • При комбинации с последующими конвейерами обработки возможно большее влияние на целостность

Официальный бюллетень оценивает эту проблему как High.

Благодарности

В официальном бюллетене Spring указано, что следующие исследователи ответственно сообщили об этой проблеме:

  • M0untainShley
  • SharlongWen
  • daehyuh

Ссылки

  • Официальный бюллетень Spring: https://spring.io/security/cve-2026-40987/
  • CVSS calculator: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:L&version=3.1