关于漏洞
这是一个在 Atlassian Confluence 中需要权限的远程代码执行漏洞 CVE-2024-21683。
描述
这个高严重性的 RCE(远程代码执行)漏洞是在 Confluence Data Center 和 Server 的 5.2 版本中引入的。这个 RCE 漏洞的 CVSS 得分为 8.3,允许经过身份验证的攻击者执行任意代码,对机密性、完整性和可用性有很高的影响,并且不需要用户交互。Atlassian 建议 Confluence Data Center 和 Server 的客户升级到最新版本。如果无法这样做,请将您的实例升级到指定的支持的固定版本。查看发布说明 Confluence Release Notes。您可以从下载中心 Atlassian Download Center 下载 Confluence Data Center 和 Server 的最新版本。这个漏洞是在内部发现的。
分析
我迅速下载了两个版本进行差异对比,并捕捉到了变化:
在 RhinoLanguageParser
中,它将 Context.initStandardObjects
更改为 Context.initSafeStandardObjects
。
通过一些搜索,我知道使用 initStandardObjects
的 RhinoLanguageParser
可以通过控制 script
变量来实现远程代码执行(类似于 ScriptEngine):
cx.evaluateString(scope, script, "ParserScript", 0, (Object)null);
经过追踪,我找到了源头 → 接收点:
com.atlassian.confluence.ext.code.config.ConfigureNewcodeAction#addLanguage
com.atlassian.confluence.ext.code.languages.impl.RegisteredLanguageInstallerImpl#installLanguage
com.atlassian.confluence.ext.code.languages.impl.RhinoLanguageParser#parseRegisteredLanguage
com.atlassian.confluence.ext.code.languages.impl.RhinoLanguageParser#parseLanguage
script
变量可以被控制。
POC
这是 POC截图
请注意,在没有适当授权的情况下,尝试利用此类漏洞可能违反法律并导致严重的法律后果,本公众号翻译的文章均用于防御和学习为目的,不提供任何实际的POC和EXP,所有操作均在实验环境下进行,请勿用于其他用途,否则后果自负。
- END -
原文始发于微信公众号(3072):CVE-2024-21683 Confluence RCE 分析(译)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论