Apache Solr 身份验证绕过漏洞(CVE-2024-45216)详解
2024-11-20 16:28:1 Author: www.freebuf.com(查看原文) 阅读量:0 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

什么是 Apache Solr?

Apache Solr 是一个基于 Apache Lucene 的开源搜索平台,广泛应用于构建搜索引擎和数据分析应用。Solr 专为处理海量数据设计,性能高效,支持搜索、内容管理、自然语言处理等多种场景。


漏洞概述

影响范围:

  • Solr 5.3.0 至 8.11.4
  • Solr 9.7.0 及以下版本

这些版本的 PKIAuthenticationPlugin(默认启用)存在漏洞,可以通过在 API 路径末尾添加伪造的 URL 片段绕过身份验证。


配置与复现

认证配置文件 security.json示例:

{
  "authentication": {
    "class": "solr.BasicAuthPlugin",
    "credentials": {
      "solr": "IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="
    },
    "blockUnknown": false
  },
  "authorization": {
    "class": "solr.RuleBasedAuthorizationPlugin",
    "permissions": [
      {
        "name": "security-edit",
        "role": "admin"
      }
    ],
    "user-role": {
      "solr": "admin"
    }
  }
}

操作步骤:

  1. 启用身份验证插件:在配置文件中启用 BasicAuthPluginRuleBasedAuthorizationPlugin
  2. 创建用户和角色
    • 用户名:solr
    • 密码:SolrRocks
    • 角色:admin,具有 security-edit权限。
  3. 搭建测试环境
    使用以下 docker-compose.yaml快速搭建测试环境:
version: '3.7'
services:
  solr:
    image: solr:9.6.0
    ports:
      - "8983:8983"
    volumes:
      - ./security.json:/var/solr/data/security.json
  1. 将配置上传至 Zookeeper
solr zk cp /var/solr/data/security.json zk:/security.json -z zoo1:2181
  1. 绕过身份验证
    • 通过构造以 /admin/info/key结尾的请求路径,可以绕过身份验证直接访问。

技术分析

漏洞核心:
PKIAuthenticationPlugin插件在验证请求时,对以 /admin/info/key结尾的请求路径未执行完整验证。通过构造特殊的请求路径,可以绕过所有身份验证逻辑。

关键代码分析:

  1. doAuthenticate方法问题
    • 修复前会直接检查路径是否以 /admin/info/key结尾,如果匹配则跳过所有验证。
  2. URI 处理问题
    • 请求路径中 :后的部分会被截断,从而绕过路径验证。

解决方案

  1. 升级 Solr:尽快升级到 9.7.1 或更高版本。
  2. 临时修复:关闭不必要的 API,确保只允许认证的请求访问关键数据。

相关patch:

  • https://issues.apache.org/jira/secure/attachment/13071024/SOLR-17417.patch

官方公告【含具体攻击POC/EXP】:

  • https://issues.apache.org/jira/browse/SOLR-17417

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022


文章来源: https://www.freebuf.com/vuls/415741.html
如有侵权请联系:admin#unsafe.sh