IPBUF安全漏洞报告
English
CVE-2026-41490 CVSS 8.3 高危

CVE-2026-41490 Dagster SQL注入漏洞

披露日期: 2026-05-07

漏洞信息

漏洞编号
CVE-2026-41490
漏洞类型
SQL注入
CVSS评分
8.3 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Dagster

相关标签

SQL注入DagsterCVE-2026-41490动态分区RCE

漏洞概述

Dagster是一个数据资产的开发、生产和观察的编排平台。在Dagster Core 1.13.1版本及Dagster库0.29.1版本之前,DuckDB、Snowflake、BigQuery和DeltaLake的I/O管理器在构建SQL WHERE子句时,通过插值动态分区键值到查询中,且未进行转义。拥有“添加动态分区”权限的用户可以创建包含任意SQL注入的分区键,该SQL将在I/O管理器的凭据下对目标数据库后端执行。此问题仅影响使用动态分区的部署,使用静态或时间窗口分区的管道不受影响。

技术细节

该漏洞的根本原因在于Dagster的特定I/O管理器(如DuckDB、Snowflake、BigQuery和DeltaLake)在处理动态分区时,未能正确过滤用户输入。当系统构建数据库查询语句(特别是WHERE子句)时,直接将用户提供的动态分区键值拼接到SQL查询中,而不是使用参数化查询或进行适当的转义。攻击者需要拥有“添加动态分区”的权限。一旦具备该权限,攻击者可以精心构造一个恶意的分区键,其中包含SQL注入载荷(如 ' OR 1=1 -- 或其他数据库特定的指令)。当Dagster尝试读取或写入该分区的数据时,这些恶意代码会被传递到底层数据库执行。由于执行权限属于I/O管理器的连接凭据,这可能导致数据泄露、数据篡改,甚至在某些情况下导致数据库拒绝服务。仅使用静态分区或时间窗口分区的系统不受此漏洞影响,因为它们不涉及这种动态字符串拼接操作。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标是使用Dagster平台且启用了动态分区功能的系统。
STEP 2
2. 获取权限
攻击者获取目标系统的访问权限,并设法获得“添加动态分区”的权限。
STEP 3
3. 构造Payload
攻击者构造包含恶意SQL代码的分区键(例如:' OR 1=1 --),旨在绕过验证或执行恶意命令。
STEP 4
4. 执行注入
攻击者通过添加分区的接口提交恶意键值,Dagster I/O管理器将其拼接到SQL语句中并在数据库后端执行。
STEP 5
5. 达成效果
数据库执行注入的SQL,导致数据泄露(C:H)、数据篡改(I:H)或服务受损(A:L)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-41490: SQL Injection via Dynamic Partition Key # This script demonstrates how a malicious partition key could be constructed. import requests # Target URL (Hypothetical) TARGET_URL = "http://target-dagster-api/partitions" # The payload attempts to inject SQL to comment out the rest of the query # or manipulate the logic, assuming the backend does: SELECT * FROM table WHERE partition = '{key}' malicious_payload = "test' OR '1'='1' --" data = { "partition_key": malicious_payload } # Sending the request # response = requests.post(TARGET_URL, json=data) # print(f"Status Code: {response.status_code}") print(f"Generated Malicious Partition Key: {malicious_payload}")

影响范围

Dagster Core < 1.13.1
Dagster Libraries < 0.29.1

防御指南

临时缓解措施
如果无法立即升级补丁,建议严格审查并限制拥有“添加动态分区”权限的用户账户,确保仅受信任的内部人员拥有此权限。作为临时规避方案,可暂停使用动态分区功能,转而使用静态分区或时间窗口分区,直到完成修复。

参考链接

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