一、事件回顾:内置规则库中的一条高危告警
在运维百度云防护企业版的过程中,安全总览的“内置规则”列表里有一条标记值得所有使用 Grafana 的团队重点关注:Code_exec.CVE-2024-9264.A,风险等级为 高风险 / 代码执行,规则描述直指 Grafana SQL 表达式远程代码执行漏洞,规则更新时间为 2026 年 4 月 23 日。
这条内置规则的出现意味着:针对 CVE-2024-9264 的自动化扫描和定向攻击正在活跃进行中。如果你或你的团队正在使用 Grafana 11.x 作为监控可视化平台,并且尚未修补该漏洞,那么随时可能因为一个低权限账号被拿下服务器。
二、漏洞档案:CVE-2024-9264 全面拆解
2.1 基本信息
| 属性 | 详情 |
|---|---|
| CVE 编号 | CVE-2024-9264 |
| CVSS 3.1 评分 | 9.9(严重/Critical) |
| CVSS 4.0 评分 | 9.4(严重) |
| 漏洞类型 | 命令注入(CWE-77)与代码注入(CWE-94) |
| 受影响产品 | Grafana OSS 和 Enterprise |
| 受影响版本 | 11.0.x、11.1.x、11.2.x(所有 Grafana 11.x) |
| 所需权限 | VIEWER(最低查看权限)或更高 |
| PoC 状态 | 已公开,GitHub 上存在多渠道利用代码 |
| 漏洞公布时间 | 2024 年 10 月 17 日 |
| 补丁发布时间 | 2024 年 10 月 18 日 |
2.2 漏洞根源:一个“实验性功能”引发的灾难
CVE-2024-9264 的根源出在 Grafana 11 中引入的一个实验性功能——SQL Expressions(SQL 表达式) 。该功能的初衷是允许用户通过 DuckDB 引擎对数据源查询结果进行 SQL 后处理。然而,这个实验性功能却因为底层 DuckDB CLI 的查询交互机制,以及一个关键的设计失误,引入了严重的安全隐患。
在早期的 Grafana 11.x 实现中,该功能默认向所有拥有查看权限(VIEWER)的认证用户开放了 API 接口。拥有最低权限的用户,也能通过构造恶意 SQL 请求,将数据查询功能转化为远程代码执行的跳板,直接威胁到底层服务器的安全。
简单来说,问题出在 SQL 查询在传递给 DuckDB CLI 之前未经过充分的输入验证和清理,导致攻击者可以通过注入特殊的 DuckDB 函数实现命令注入和本地文件包含。
2.3 利用条件:三个前提缺一不可
虽然该漏洞危害巨大,但攻击者必须同时满足以下三个条件才能成功利用:
- Grafana 版本为 11.x:该漏洞首次出现在 Grafana 11.0.0,Grafana 10.x 及更早版本不受影响。
- DuckDB 二进制文件已安装并在 PATH 中:默认情况下,DuckDB 二进制文件不与 Grafana 打包分发。只有当系统管理员手动安装了 DuckDB 并使其在 Grafana 进程的 PATH 环境变量中可访问时,漏洞才可被利用。
- 攻击者拥有至少 VIEWER 权限:任何拥有查看权限或更高权限的 Grafana 用户都可以执行此攻击。
2.4 CVSS 9.9 的危害解读
CVSS v3.1 评分 9.9,在高危漏洞中属于最严重的级别。我们用直观的语言拆解它的攻击向量:
- 攻击向量(AV:N):通过网络即可发起攻击,不需要物理接触
- 攻击复杂度(AC:L):攻击复杂度低,不需要特殊环境配合
- 权限要求(PR:L):只需要最低级别的查看权限
- 用户交互(UI:N):不需要受害者任何操作
- 范围(S:C):可跨越安全边界,影响其他组件
- 机密性影响:高(可读取服务器上任意文件,包括未加密的密码)
- 完整性影响:高(可修改或写入任意文件)
- 可用性影响:高(可执行关机、清数据等命令)
三、攻击手法详解:攻击者究竟能做什么?
3.1 本地文件包含(LFI)—— 搬空服务器敏感文件
攻击者可以利用 DuckDB 的 read_csv_auto() 等文件读取函数,读取服务器上的任意文件。公开的 PoC 利用代码展示了攻击者如何直接读取 Linux 系统的密码文件(如 /etc/passwd),以及其他包含未加密密码的配置文件。
典型的攻击请求会向 /api/ds/query?ds_type=__expr__&expression=true&requestId=Q101 发送一个修改过的 JSON 请求,将表达式类型从 math 改为 sql,并在 SQL 查询中注入 read_csv_auto('/etc/passwd') 等恶意函数。
3.2 命令注入 —— 拿下服务器控制权
除了文件读取,攻击者还可以通过注入恶意 SQL 命令来实现命令注入,在主机系统上执行任意命令。这包括:
- 窃取环境变量:通过
SELECT getenv('PATH')读取系统环境变量,获取敏感信息 - 执行系统命令:利用 DuckDB 的扩展功能执行系统级命令
- 植入后门:将攻击结果写入可访问的 Web 目录,实现持久化控制
3.3 攻击的现实威胁
根据 Netlas.io 的统计数据,全球有超过 100,000 个 Grafana 实例可能受到此漏洞影响,仅美国就有近 19,000 个。
该漏洞的 PoC 利用代码已在 GitHub 上公开,多渠道分发。SonicWall 威胁研究团队评估认为,考虑到该漏洞的严重性、PoC 的公开可得性以及 Grafana 的广泛使用度,大规模利用即将到来。
四、百度云防护如何自动拦截 CVE-2024-9264
百度云防护内置规则库中已收录了针对 CVE-2024-9264 的防护规则——Code_exec.CVE-2024-9264.A,用于检测 Grafana SQL 表达式远程代码执行漏洞的攻击请求并实施拦截。
4.1 Web 基础防护引擎 —— 命令注入与代码执行的克星
百度云防护全系(专业版、商务版、企业版)均内置了 Web 基础防护引擎,明确覆盖以下攻击类型:
SQL 注入、XSS 跨站、恶意文件上传、远程命令执行、文件包含、恶意扫描拦截、Webshell 等。
CVE-2024-9264 的攻击本质是 命令注入(CWE-77) 和 代码注入(CWE-94) ,完全落在 Web 基础防护引擎的检测范围内。百度云防护通过深度解析 HTTP 请求中的 JSON 请求体、分析上下文语义,精准识别出被注入的恶意 DuckDB SQL 函数(如 read_csv_auto()、getenv() 等),并立即返回拦截响应。
4.2 多层解码能力,绕过技俩全部失效
攻击者经常对攻击载荷进行 URL 编码、Unicode 编码等变形绕过,以规避基于简单正则匹配的 WAF。百度云防护的 Web 基础防护规则支持 7 种不同格式的解码,包括 JSON、XML、Multipart 等,这些解码能力极大提升了针对 DuckDB CLI 命令注入的检测准确率。
4.3 规则动作:拦截 vs 观察
每条内置规则支持两种动作:
- 拦截模式:攻击请求立即阻断,向客户端返回 403 拦截页面。这是推荐的默认配置。
- 观察模式:只记录不拦截。建议首次接入 WAF 时先开观察,分析几天确认没有正常业务被误杀,再切换为拦截模式。
4.4 配置路径参考
如需检查或调整该内置规则的生效状态,可登录百度云防护控制台,依次进入:
Web应用防火墙 → 防护配置 → Web防护 → Web基础防护
在该页面中可查看内置规则列表,确认 Code_exec.CVE-2024-9264.A 是否已启用并处于“拦截”模式。
除了依赖内置规则,也可以通过自定义规则来做更精细化的防护。由于 CVE-2024-9264 的攻击请求必须通过 Grafana 的特定 API 接口,可以创建自定义规则进行精准阻断:
配置路径:Web应用防火墙 → 防护配置 → Web防护 → 自定义规则,点击“+ 添加规则”。
规则配置示例:
| 条件 | 字段 | 比较符 | 值 |
|---|---|---|---|
| 条件一 | URI Path | 包含 | /api/ds/query |
| 且 | Query String Parameter | 存在 | ds_type=__expr__ |
处置动作:拦截
这条自定义规则会精准阻断所有访问 Grafana SQL 表达式执行接口的请求,关闭攻击入口。即使 Web 基础防护规则库暂时没有收录该漏洞编号,也能有效封死攻击路径。
五、管理员自查与加固指南
5.1 立即检查是否受影响
- 查看 Grafana 版本:在 Grafana 界面左下角点击版本号,确认是否为 11.x 版本。如果是 10.x 或更早版本,不受此漏洞影响。
- 检查 DuckDB 是否安装:执行
which duckdb命令,如果提示未找到,且 Grafana 的 PATH 中不存在 DuckDB,则攻击无法利用。 - 检查 WAF 攻击日志:登录百度云防护控制台 → Web应用防火墙 → 安全总览 → 攻击详情,搜索
CVE-2024-9264查看是否有相关告警记录。
5.2 修复与加固建议(按优先级排序)
- 立即升级 Grafana(最重要):
- 安全修复版:11.0.5+security-01、11.1.6+security-01、11.2.1+security-01
- 完整升级版:11.0.6+security-01、11.1.7+security-01、11.2.2+security-01
- 从 PATH 中移除 DuckDB(临时缓解):如果暂时无法升级,可立即从 Grafana 进程的 PATH 环境变量中移除 DuckDB 二进制文件。官方公告明确指出,没有其他 Grafana 功能需要 DuckDB。
- 收紧 Grafana 权限:审查所有 Grafana 用户账号,最小化拥有 VIEWER 及以上权限的用户数量,减少潜在攻击面。
- 保持 WAF 防护在线:确认百度云防护的 Web 基础防护已开启,并保持“中级策略集”或以上级别,确保
Code_exec.CVE-2024-9264.A内置规则处于“拦截”模式。
六、总结
CVE-2024-9264 是 Grafana 11.x 中一个由 DuckDB CLI 缺乏充分输入验证引发的严重漏洞。CVSS 9.9 的严重评分、低至 VIEWER 的攻击权限要求、公开在 GitHub 上的多渠道 PoC 代码,加上全球超过 100,000 个潜在受影响实例,它完全有能力对任何未修补的 Grafana 服务器造成毁灭性打击。
对于已经接入百度云防护的用户来说,这是一个好消息:Code_exec.CVE-2024-9264.A 内置规则已在 2026 年 4 月 23 日的规则库更新中上线,能够在攻击请求抵达 Grafana 源站之前完成精准识别和拦截,无需用户手动配置任何策略。百度云防护专业版即内置完整的 Web 基础防护规则,覆盖命令注入、代码执行等各类攻击类型,开箱即用。
对于尚未做任何防护的用户,建议立即行动:升级 Grafana、从 PATH 中移除 DuckDB、部署百度云防护 WAF。漏洞从发现到被大规模利用,窗口期往往只有几天——你不需要成为漏洞分析专家,也不需要熬夜逐个修漏洞。你需要的是一个持续更新、自动跟进最新威胁情报的云原生 WAF,让它替你挡在前面。
主机吧网络安全博客 专注实战安全配置与产品供销,为站长和企业提供一站式安全解决方案:
- 百度云防护 WAF(专业版 / 商务版 / 企业版):云原生 SaaS 部署,分钟级上线,内置 OWASP TOP 10 防护规则,针对各类高危 CVE 漏洞提供持续更新的虚拟补丁,接入即生效。
- 高防 CDN:大流量 DDoS 清洗,配合 WAF 形成完整防御链条。
- 高防 IP / 高防服务器:适合对延迟敏感的实时业务,扛住超大规模攻击。
- 京东云星盾 SCDN:一体化安全加速方案,兼顾防护与性能。
- SSL 证书:DV / OV / EV 全类型,适配微信小程序、百度智能小程序等场景。
- 百度 aipage 智能建站:快速搭建官网、落地页。
需要代购、规则调优、攻防排查的,直接私信我。安全这件事,找对人比找对产品更重要。
——主机吧,一个天天和漏洞、攻击、防护策略打交道的老站长
2026 年 5 月 5 日


