CVE-2026-79986
Apache Camel: camel-azure-files разрешал удалённый путь опрашиваемого файла по имени, указанному в листинге серверного каталога, не ограничивая его каталогом, в котором выполняется опрос, поэтому запись листинга, содержащая сегменты обхода каталогов, могла быть перемещена за его пределы
- Опубликовано
- 19 окт. 2026 г.
- Обновлено
- 20 окт. 2026 г.
- Назначение CNA
- apache
- Наблюдены доказательства
- 17 окт. 2026 г.
Первичный CVSS
cvelist · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:NРезюме
Уязвимость неправильного ограничения имени пути в каталоге с ограниченным доступом («обход пути») в компоненте Apache Camel Azure Files. Проблема затрагивает Apache Camel: с 4.0.0 до 4.18.5, с 4.19.0 до 4.22.1. Потребители удалённых файлов Camel опрашивают каталог на удалённом сервере и формируют абсолютный удалённый путь каждого файла путём конкатенации настроенного каталога с именем файла, указанным в листинге каталога сервера. Эта конкатенация (FtpUtils.absoluteFilePath и GenericFileConsumer) не применяла ни лексическую нормализацию, ни проверку того, что результат остаётся внутри опрашиваемого каталога, и полученный путь становился операндом для каждой последующей удалённой операции над файлом: извлечения (FtpOperations.retrieveFile / SftpOperations, достигаемого из GenericFileConsumer, где имя для извлечения берётся дословно из GenericFile.getAbsoluteFilePath), удаления при delete=true (GenericFileDeleteProcessStrategy) и переименования при настройке move, preMove, moveFailed или readLock=rename (GenericFileProcessStrategySupport и GenericFileRenameExclusiveReadLockStrategy). Ни isValidFile, ни isMatched не выполняли никакой проверки нахождения внутри каталога. Запись листинга, не являющаяся единственным сегментом пути, поэтому разрешалась в путь за пределами настроенного каталога опроса, заставляя Camel читать, удалять или переименовывать файлы за его пределами с использованием собственных учётных данных эндпоинта. Имя из листинга не является данными, контролируемыми маршрутом. Оно предоставляется удалённым сервером, а канал управления FTP вообще не имеет защиты целостности, поэтому атакующий на пути может переписать ответ LIST, не имея никаких учётных данных; скомпрометированный, вредоносный или многопользовательский сервер, либо сервер на основе виртуальной файловой системы, может выдавать такое имя напрямую. Извлечение достижимо в конфигурации потребителя по умолчанию, поскольку удалённые потребители загружают каждый файл из листинга; удаление и переименование дополнительно требуют одной из указанных выше опций обработки, все из которых распространены. Выход за пределы каталога, который Camel был настроен опрашивать, является безусловным, тогда как выход за пределы границы собственной учётной записи сервера дополнительно зависит от того, ограничивает ли этот сервер учётную запись. Опция jailStartingDirectory, которая документирована как ограничивающая Camel начальным каталогом и включена по умолчанию, управляла записями производителя и, после работы по ограничению localWorkDirectory, загрузками потребителя в локальный рабочий каталог, — но она не ограничивала этот удалённый операнд, поэтому её название и описание заявляли границу, которая здесь не обеспечивалась. Та же точка входа уже была признана на локальной стороне: путь загрузки localWorkDirectory был ограничен так, чтобы удалённое имя файла, содержащее сегменты родительского каталога, не могло разрешиться за пределами локального рабочего каталога. Удалённый операнд был оставшейся половиной этой поверхности. Данный артефакт предоставляет схему azure-files. Его потребитель наследуется от того же базового класса RemoteFileConsumer и составлял удалённый путь через простой вспомогательный метод конкатенации, поэтому унаследовал то же неограниченное разрешение. Для его достижения требуется имя из листинга, не являющееся единственным сегментом пути, которое REST-сервис Azure Files обычно не возвращает; уязвимость была исправлена на той же основе, что и другие потребители удалённых файлов, а не на основании продемонстрированного proof of concept для этой схемы. Обновитесь до Apache Camel 4.23.0, где исправлена эта проблема. Пользователям ветки выпусков 4.22.x следует обновиться до 4.22.1. Пользователям ветки LTS 4.18.x следует обновиться до 4.18.5. Ветка 4.14.x достигла конца жизненного цикла и не получает это исправление; её пользователям следует перейти на поддерживаемую ветку выпусков.
Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.