CVE-2026-66906
Apache Camel: Camel-Azure-Storage-Blob: операция downloadBlobToFile формировала локальный путь загрузки на основе имени удалённого blob-объекта, не ограничивая его настроенным fileDir
- Опубликовано
- 24 авг. 2026 г.
- Обновлено
- 25 авг. 2026 г.
- Назначение CNA
- apache
- Наблюдены доказательства
- 24 авг. 2026 г.
Первичный CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NНизкий · следующие 30 дней
- Процентиль
- 43,6 %
- Дата модели
- 21 сент. 2026 г.
EPSS – это статистическая оценка, а не достоверность или мера воздействия. Объедините это с CVSS, статусом KEV, воздействием и вашей средой.
Резюме
Уязвимость обхода относительного пути в компоненте Apache Camel Azure Storage Blob. Эта проблема затрагивает Apache Camel: начиная с 4.0.0 до 4.14.9, начиная с 4.15.0 до 4.18.4, начиная с 4.19.0 до 4.22.0. Компонент camel-azure-storage-blob может загружать blob из Azure Storage в локальную файловую систему через свою операцию downloadBlobToFile, записывая в каталог, задаваемый опцией конечной точки fileDir, которая документирована как применимая и для производителя, и для потребителя. BlobOperations.downloadBlobToFile формировал локальный целевой путь, объединяя fileDir с удалённым именем blob ровно так, как его сообщал Azure SDK (new File(fileDir, client.getBlobName())), и передавал результат напрямую в вызов загрузки SDK, без лексической нормализации и без проверки того, что итоговое расположение осталось внутри fileDir. Имя blob не является данными, контролируемыми маршрутом: потребитель перечисляет контейнер в BlobConsumer.createBatchExchangesFromContainer, который выводит список blob и создаёт по одному обмену на каждую запись из BlobItem.getName() без изменений, не применяя по умолчанию фильтрацию имён. Поэтому имя blob, содержащее сегменты родительского каталога, приводило к расположению за пределами заданного fileDir, позволяя любому, кто способен влиять на имена в потребляемом контейнере, заставить Camel создать или перезаписать файл в выбранном им месте с привилегиями процесса Camel. В зависимости от того, куда может писать процесс, перезапись файла за пределами каталога загрузки может привести к более серьёзным последствиям, чем потеря целостности этого файла. Контейнеры blob в Azure Storage используют плоское пространство имён, в котором имя blob является непрозрачным ключом, поэтому имя с такими сегментами сохраняется и отображается в списке как есть. Опция fileDir является обычным параметром конфигурации из группы common и не имеет маркера безопасности, поэтому ничто не сигнализировало пользователям, что её значение не применяется как граница изоляции. Другие потребители загрузки файлов в Camel — camel-file, camel-ftp, camel-smb, camel-mina-sftp и camel-azure-files — уже ограничивали локальные загрузки заданным каталогом с помощью проверки границ по сегментам пути; путь загрузки camel-azure-storage-blob не был охвачен этой работой. Пользователям рекомендуется обновиться до версии 4.22.0, которая исправляет проблему. Если пользователи находятся на потоке выпусков LTS 4.14.x, им рекомендуется обновиться до 4.14.9. Если пользователи находятся на потоке выпусков 4.18.x, им рекомендуется обновиться до 4.18.4. Для развёртываний, которые не могут обновиться немедленно, ограничьте имена, с которыми будет работать потребитель, с помощью опции конечной точки regex, которая применяется к каждому имени blob в списке как полное совпадение строки, так что принимаются только простые односегментные имена, а любое имя, содержащее разделитель пути или сегмент родительского каталога, отфильтровывается до создания обмена; опция prefix может дополнительно сузить список на стороне сервера, при этом если заданы обе опции, regex имеет приоритет, а prefix игнорируется. В качестве альтернативы избегайте операции downloadBlobToFile для недоверенных контейнеров и записывайте полезную нагрузку из маршрута под именем файла, контролируемым самим маршрутом, а не под именем, взятым из удалённого списка. В качестве эшелонированной защиты относитесь к именам blob в любом контейнере, доступном для записи извне, как к недоверенным входным данным и не выводите из них локальные пути файловой системы.
Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.