CVE-2026-79984
Apache Camel: camel-mina-sftp определял удалённый путь опрашиваемого файла по имени, указанному в листинге каталога сервера, не ограничивая его каталогом, в котором выполняется опрос, поэтому запись листинга, содержащая сегменты обхода каталогов, могла быть перемещена за его пределы
- Опубликовано
- 19 окт. 2026 г.
- Обновлено
- 19 окт. 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 Mina SFTP. Проблема затрагивает Apache Camel: с 4.18.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 был ограничен так, чтобы удалённое имя файла, содержащее сегменты родительского каталога, не могло разрешиться за пределами локального рабочего каталога. Удалённый операнд был оставшейся половиной этой поверхности. Данный артефакт предоставляет схему mina-sftp — альтернативную реализацию SFTP, потребитель которой наследуется от того же базового класса RemoteFileConsumer и поэтому унаследовал то же неограниченное разрешение путей. Обновитесь до Apache Camel 4.23.0, где исправлена эта проблема. Пользователям ветки выпусков 4.22.x следует обновиться до 4.22.1. Пользователям ветки LTS-выпусков 4.18.x следует обновиться до 4.18.5. Ветка 4.14.x достигла конца жизненного цикла и не получает это исправление; пользователям этой ветки следует перейти на поддерживаемую ветку выпусков.
Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.