[CVE-2021-26085] Confluence /s/路径的信息泄露(受限)

2021-08-24 02:51:06 Author: wiki.ioin.in 阅读量:414 收藏

漏洞描述

未经认证的攻击者可访问Confluence的WEB-INF和META-INF目录下的任意文件(包括可能的凭据信息)。这个漏洞我理解是CVE-2020-29448补丁的绕过;跟CVE-2019-3394的危害程度一样,最大可能的危害是读取可能存在的atlassian-user.xml文件(泄露LDAP凭据但这种配置方式已被弃用),但是不需要认证。

漏洞详情

/s/路径是Atlassian产品通用的访问静态资源的方法。

Confluence有一个正则

private static final Pattern CACHE_PATTERN = Pattern.compile("^/s/(.*)/_/((?i)(?!WEB-INF)(?!META-INF).*)");

用于避免WEB-INF和META-INF目录下文件被读取。

CVE-2020-29448的作者发现可以通过url编码绕过这个正则,实现WEB-INF和META-INF目录下的文件读取。

Atlassian修复它的方式是在进行正则判断前,对payload先url解码。

但是我发现可以通过两次url编码来绕过,于是提交给了Atlassian官方,不过看这个CVE-2021-26085的官方页面,好像CVE-2020-29448的作者也发现了?

这次Atlassian的修复方式是用一个for循环判断只要uri还可以被解码就继续解码。

    private String decodeURL(String url) {        String decodedUri;        for(decodedUri = HtmlUtil.urlDecode(url); HtmlUtil.shouldUrlDecode(decodedUri); decodedUri = HtmlUtil.urlDecode(decodedUri)) {        }
return decodedUri; }

影响版本

[ ,7.4.10) 

[7.5.0, 7.12.3)

漏洞演示

参考

  • https://jira.atlassian.com/browse/CONFSERVER-67893

  • https://nvd.nist.gov/vuln/detail/CVE-2021-26085

  • https://nvd.nist.gov/vuln/detail/CVE-2020-29448

  • https://nvd.nist.gov/vuln/detail/CVE-2019-3394


相似的Jira的信息泄露参考 陈师傅的知识星球:

https://t.zsxq.com/bAaiUfa