Apache Solr漏洞CVE-2024-45216分析
启明星辰 2024-11-01 17:34 北京
Apache Solr官方发布了一个安全漏洞公告(CVE-2024-45216),使用PKIAuthenticationPlugin的Solr服务会受到身份验证绕过的影响。该漏洞的利用已被公开到互联网。
更多安全资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)
一、漏洞描述
2024年10月,Apache Solr官方发布了一个安全漏洞公告(CVE-2024-45216),使用PKIAuthenticationPlugin的Solr服务会受到身份验证绕过的影响(在Solr Cloud模式下,该身份验证插件默认启用)。在任何Solr API URL路径末尾加入特定的字符串将会绕过身份验证,并且同时可以正确访问该API端点功能。该漏洞的利用已被公开到互联网。
二、影响与修复
受影响的Apache Solr版本:
5.3.0 <= version < 8.11.4
9.0.0 <= vesion < 9.7.0
Apache Solr在8.11.4以及9.7.0版本已经对该漏洞进行了修复。
三、漏洞复现
本文在Solr 8.11.3的Cloud模式下复现。在未登录的情况下访问/solr/admin/info/system,如下图所示:

四、漏洞分析
核心代码在solr-core-8.11.3.jar!/org/apache/solr/servlet/SolrDispatchFilter.class:401 。

这里有两个点,第1个箭头是做身份验证的,第2个箭头是做功能调度的,问题就出在这两个过程中。
先分析身份验证流程:在solr-core-8.11.3.jar!/org/apache/solr/servlet/SolrDispatchFilter.class:501 。

当请求头中存在SolrAuth或者SolrAuthV2,并且PKIAuthenticationPlugin启用的话,就调用该插件进行身份验证。
继续跟进该插件的身份验证流程:

当URL以/admin/info/key结尾的话,就直接略过身份校验,说明该接口是个白名单。
显然,此处就产生了一个漏洞,任何以/admin/info/key结尾的URL请求都会绕过该身份校验。
但其他以/admin/info/key结尾的URL能绕过身份校验,并不意味着能正确路由到正常的功能。
因此就到了开头第二个箭头处。也就是Action result = call.call();

此处调用init方法。

这里判断我们的path中是否有冒号(ascii 58),如果有的话,就截取到冒号处当做真正的请求路由。
所以结合上文的身份绕过,此处就很容易得到权限绕过payload。
参考链接:
[1] Apache Solr官方漏洞通告
[2] GitHub Commit https://github.com/apache/solr/commit/7ef2c0ef36601d8ce8c83192738376ed7c2429ac
启明星辰积极防御实验室(ADLab)
ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截至目前,ADLab已通过 CNVD/CNNVD/NVDB/CVE累计发布安全漏洞5000余个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖基础安全研究、数据安全研究、5G安全研究、人工智能安全研究、移动安全研究、物联网安全研究、车联网安全研究、工控安全研究、信创安全研究、云安全研究、无线安全研究、高级威胁研究、攻防体系建设。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。
