CVE-2023-22527 Confluence 未授权 SSTI RCE 漏洞分析

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

Atlassian Confluence存在模板注入代码执行漏洞(CVE-2023-22527),允许远程代码执行。受影响的版本为8.0.x至8.5.3。漏洞可以通过使用$stack.findValue或$ognl.findValue和可控参数的.vm文件进行利用。ConfluenceVelocityServlet处理.vm接口。文章提供了对漏洞及其影响的详细分析。

🔎

延伸解读

漏洞影响范围与修复版本

该漏洞影响 Confluence Data Center 和 Server 的 8.0.x 至 8.5.3 版本。官方已发布安全版本 8.5.4、8.6.0 和 8.7.1,使用受影响版本的用户应尽快升级。需要注意的是,文章提到若使用 8.5.3 版本,JDK 版本需为 110x01,这可能与漏洞复现环境有关。

漏洞利用的技术条件

攻击者需构造恶意请求,利用 .vm 文件中的 $stack.findValue 或 $ognl.findValue 方法,且参数可控。处理 .vm 接口的 Servlet 为 ConfluenceVelocityServlet,漏洞入口是 .vm 文件。通过 OGNL 表达式和 AST 技术,攻击者最终可实现远程代码执行。

漏洞分析与修复思路

文章通过 diff 分析发现,黑名单中新增了 com.opensymphony.xwork2.ActionContext 类,甚至对 package 也进行了加黑。结合 CVE-2023-22522 的经验,推测攻击通过 OGNL Guard 类,利用 AST 手法最终导致 RCE。这为理解漏洞成因和修复提供了线索。

❓

Q&A

CVE-2023-22527 是什么漏洞?

CVE-2023-22527 是 Atlassian Confluence 的模板注入代码执行漏洞,允许攻击者在无需登录的情况下构造恶意请求导致远程代码执行。

哪些 Confluence 版本受 CVE-2023-22527 影响?

受影响版本包括 Confluence Data Center 和 Server 8.0.x 至 8.5.3。安全版本为 8.5.4、8.6.0 和 8.7.1。

攻击者如何利用 CVE-2023-22527 漏洞?

攻击者可以利用 .vm 文件,通过 $stack.findValue 或 $ognl.findValue 并控制参数,结合 OGNL 表达式和 AST 技术实现远程代码执行。

CVE-2023-22527 的漏洞入口点是什么?

漏洞入口点是 .vm 文件,特别是 confluence/template/aui/text-inline.vm,处理 .vm 接口的 Servlet 为 ConfluenceVelocityServlet。

CVE-2023-22527 的严重程度如何?

Atlassian 官方对该漏洞评级为严重,且外界尚未流传相关利用。

如何复现 CVE-2023-22527 漏洞?

复现时需使用 .vm 文件,并确保使用了 $stack.findValue 或 $ognl.findValue 且参数可控。例如,发送包含 label=test\u0027%2b#{7*7}%2b\u0027 的请求。

🏷️

标签

➡️

继续阅读