CVE-2026-79983
Apache Camel:camel-ftp 根据服务器目录列表中报告的名称解析被轮询文件的远程路径,而未将其限制在被轮询的目录内,因此包含路径遍历段的列表条目可能被移动到该目录之外
- 已发布
- 2026年10月19日
- 已更新
- 2026年10月19日
- 分配 CNA
- apache
- 观察到的证据
- 2026年10月17日
初级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。使用 4.18.x LTS 发布流版本的用户应升级到 4.18.5。4.14.x 流已达到生命周期终止,不会收到此修复;使用该流的用户应迁移到受支持的发布流。
来源
针对 CVE-2026-79983 的可运行概念验证复现程序,该漏洞是 Apache Camel camel-ftp 消费者中的路径遍历漏洞,包含恶意 FTP 服务器测试夹具以及受影响版本与修复版本的构建。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。