CVE-2026-60093
Apache Camel: Camel-Azure-Storage-DataLake:downloadToFile 操作根据远程路径名构建本地下载目标,而未将其限制到配置的 fileDir
- 已发布
- 2026年8月24日
- 已更新
- 2026年8月25日
- 分配 CNA
- apache
- 观察到的证据
- 2026年8月24日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N低 · 未来 30 天
- 百分位
- 17.7%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Apache Camel Azure-Storage Datalake 组件中的相对路径遍历漏洞。此问题影响 Apache Camel:4.0.0 至 4.14.9 之前的版本、4.15.0 至 4.18.4 之前的版本、4.19.0 至 4.22.0 之前的版本。camel-azure-storage-datalake 组件可通过其 downloadToFile 操作将 Azure Data Lake Storage Gen2 文件下载到本地文件系统,写入由 fileDir 端点选项指定的目录。DataLakeFileOperations.downloadToFile 将 fileDir 与 Azure SDK 报告的远程路径名直接拼接(new File(fileDir, fileClientWrapper.getFileName()))来构建本地目标,并将结果直接传递给 SDK 下载调用,既未进行词法规范化,也未检查解析后的位置是否仍位于 fileDir 内。远程名称并非由路由控制的数据:消费者在 DataLakeConsumer.createBatchExchangesFromPath 中枚举文件系统,该函数列出路径并逐字根据 PathItem.getName() 为每个条目创建一个 exchange,默认不应用任何名称过滤。因此,包含父目录段的路径名会解析到所配置 fileDir 之外的位置,使任何能够影响所消费 Data Lake 文件系统中名称的人,都能以 Camel 进程的权限,在所选位置创建或覆盖文件。根据进程可写入的内容,覆盖下载目录之外的文件可能导致比该文件完整性丧失更严重的权限提升。fileDir 选项是一个普通的 common 组配置参数,不带有任何安全标记,因此没有任何信息向用户提示其值并未被强制作为隔离边界执行。Camel 的其他文件下载消费者——camel-file、camel-ftp、camel-smb、camel-mina-sftp 和 camel-azure-files——已通过路径段边界检查将本地下载限制在配置的目录内;而 camel-azure-storage-datalake 的下载路径未被该工作覆盖。建议用户升级到修复了此问题的 4.22.0 版本。如果用户使用的是 4.14.x LTS 发布流,建议升级到 4.14.9。如果用户使用的是 4.18.x 发布流,建议升级到 4.18.4。对于无法立即升级的部署,可使用 regex 端点选项限制消费者将处理的名称,该选项以完整字符串匹配方式应用于每个列出的路径名,从而仅接受简单的单段名称,并在创建 exchange 之前过滤掉任何包含路径分隔符或父目录段的名称。或者,在不受信任的文件系统上避免使用 downloadToFile 操作,并让路由在自身控制的文件名下写入负载,而不是使用来自远程列表的名称。作为纵深防御措施,应将任何外部可写入 Data Lake 文件系统中的对象名称视为不受信任的输入,不要从中派生本地文件系统路径。
来源
1针对 camel-azure-storage-datalake 中 Apache Camel 路径遍历漏洞(CVE-2026-60093)的概念验证复现程序,演示通过 downloadToFile 实现任意文件写入。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。