CVE-2026-79985
Apache Camel: camel-smb разрешал удалённый путь опрашиваемого файла по имени, указанному в листинге серверного каталога, не ограничивая его каталогом, который опрашивается, поэтому запись листинга, содержащая сегменты обхода каталогов, могла быть перемещена за его пределы
- Опубликовано
- 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Резюме
Уязвимость неправильного ограничения имени пути к каталогу с ограниченным доступом («обход пути») в компоненте SMB Apache Camel. Эта проблема затрагивает Apache Camel: с 4.2.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 был ограничен так, чтобы удалённое имя файла, содержащее сегменты родительского каталога, не могло разрешиться за пределами локального рабочего каталога. Удалённый операнд был оставшейся половиной этой поверхности. Этот артефакт предоставляет схему smb. Его потребитель обходит листинг общего ресурса самостоятельно, а не через RemoteFileConsumer, пропуская только точные записи "." и "..", поэтому имя, несущее сегменты обхода в любой другой форме, конкатенировалось без проверки. Для достижения этого требуется сервер, выдающий имя из листинга, не являющееся единственным сегментом пути, чего соответствующая спецификации реализация SMB2 не делает; уязвимость была исправлена на той же основе, что и другие потребители удалённых файлов, а не на основании продемонстрированного доказательства концепции против этой схемы. Обновитесь до Apache Camel 4.23.0, где эта проблема исправлена. Пользователям ветки выпусков 4.22.x следует обновиться до 4.22.1. Пользователям ветки LTS-выпусков 4.18.x следует обновиться до 4.18.5. Ветка 4.14.x достигла конца жизненного цикла и не получает это исправление; пользователям на ней следует перейти на поддерживаемую ветку выпусков.
Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.