1.漏洞描述
Atlassian Confluence Server是澳大利亚Atlassian公司的一套具有企业知识管理功能,并支持用于构建企业WiKi的协同软件的服务器版本。
Atlassian Confluence Data Center 和 Confluence Server存在安全漏洞,该漏洞源于授权管理不当。
2.影响版本
- Atlassian confluence < 7.19.16
- Atlassian confluence < 8.3.4
- Atlassian confluence < 8.4.4
- Atlassian confluence < 8.5.3
- Atlassian confluence < 8.6.1
3.影响范围
4.漏洞分析
confluence用两个interceptor(WebSudoInterceptor、PermissionCheckInterceptor)来完成接口的认证鉴权
PermissionCheckInterceptor用来判断用户是否登录并且是否有权限访问目标页面
可以通过调用ConfluenceActionSupport的setSkipAccessCheck()方法来绕过这一校验,具体方法为请求时额外添加skipAccessCheck=true
参数。
例如ViewTrustedApplicationAction
接口,该接口没有重写isPermitted方法,鉴权时调用ConfluenceActionSupport.isPermitted()
。我们可以通过请求/json/trustedapp-view.action?skipAccessCheck=true
来绕过。
WebSudoInterceptor存在缺陷,导致绕过二次鉴权
WebSudoInterceptor首先获取请求的url,如果接口url以/admin/开头,则接口默认需要管理员二次登录,仅在接口方法有WebSudoNotRequired注解时无需管理员二次登录。
如果不以/admin/开头则默认不需要管理员二次登录,仅在接口方法有WebSudoRequired注解时需管理员二次登录。
com.atlassian.confluence_confluence-8.5.2.jar!\struts.xml里用了package extends语法
令 /admin 路由集合 继承 /setup 路由集合
通过/json路由前缀可以直接访问到/setup和/admin namespace里定义的接口,而WebSudoInterceptor又默认认为/json路由下的接口不需要管理员二次登录,仅在接口方法有WebSudoRequired注解时需管理员二次登录。
另外又重写默认的interceptor stack为validatingStack而不是validatingSetupStack,绕过了com.atlassian.confluence.setup.actions.SetupCheckInterceptor
的安装校验
5. 修复建议
官方已修复该漏洞,建议用户按照官方修复步骤。更新到安全版本。
下载链接: