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