CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian's Confluence

CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian’s Confluence

漏洞描述

CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian’s Confluence 是 Atlassian 公司开发的一款团队合作软件,主要用于团队成员共享知识、协作文档和集中存储资料。它广泛应用于各种组织中,不仅是技术团队,还有其他任何需要文档合作或知识共享的团队。

在8.0.0<CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian’s Confluence<8.2.3、CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian’s Confluence<8.3.3、CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian’s Confluence<8.4.3、CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian’s Confluence<8.5.2中存在权限提升漏洞,导致任意用户可以创建新的管理员账户。

漏洞分析

既然已经修复过了,就按照老样子,分析一下差异,我这里直接用了8.5.1和8.5.2版本的jar来进行分析:

首先重要的变化就是删除和新增了几个类:

删除:

ServerInfoAction

ServerInfoFilter

新增:

ReadOnlyApplicationConfig
ReadOnlySetupPersister
主要是新增的两个类,可以看到两个ReadOnly都继承自原有的类,可以看作是一种“增强”,当使用setter的时候,抛出一个UnsupportedOperationException来拒绝修改,这样就将类变为只读来规避某些风险。

具体就是在BootstrapStatusProviderImpl的修改中体现的,将原先的this.delegate.getApplicationConfig();改为return new ReadOnlyApplicationConfig(this.delegate.getApplicationConfig());

那么接下来需要做的就是如何设置这些属性呢?查看interceptors,和官方的描述,这个SafeParametersInterceptor引起了我的注意:

把表单内容注入到action properties,那么八九不离十就是这玩意了,里面都是一些安全检查相关的,尤其是检查@ParameterSafe这个注解,并且有这么一段doInterceptor

这下可好了,那么就直接去看父类,但是点了一下竟然提示我Cannot find declaration to go to由于比较懒,直接上google搜索一下文档,然后上Github翻源码去了:

看到了具体源码后就明白了,前面获取action信息后仅仅判断了NoParameters就进行了setParameters,这就很明了了:

struts系列的漏洞处理流程interceptor—Action

这段XML配置定义了一个名为params的拦截器,并指定了该拦截器的具体实现类为com.atlassian.xwork.interceptors.SafeParametersInterceptor

然后就是寻找触发点,直接搜索params,看来确实有所发现:

看了看所有的stack,只要下面的action用的不是setupStack就都可以使用,多试试应该就可以了(我尝试后发现只有validatingStack或者什么都不写的用默认的才可以成功,其他的可以进倒是,但是没法创建用户,不知道为啥):

到这里漏洞分析就结束了。

漏洞复现

先弄个环境:

sqlserver版本太低,直接放弃复现(不是

最后选择弄个PostgreSQL来代替吧:

然后就成功进入初始界面了,打开bp,然后浏览器访问/setup/setupadministrator-start.action发现已经没办法进入注册流程了:

覆盖属性后刷新,发现已经可以重新设置管理员了:

新建完成,查看结果:

关于RCE已经有师傅提到了,我打算再看看有没有什么更加方便的方式,如果有发现再发文。


CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian's Confluence
http://www.springkill.club/2023/10/18/CVE-2023-22515 Critical Privilege Escalation Vulnerability in Atlassian's Confluence/
作者
SpringKill
发布于
2023年10月18日
许可协议