IPBUF安全漏洞报告
English
CVE-2026-42316 CVSS 6.5 中危

CVE-2026-42316: Kafka Connect Azure Kusto插件KQL注入漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-42316
漏洞类型
KQL注入
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
kafka-sink-azure-kusto

相关标签

KQL注入命令注入Azure Data ExplorerKafka篡改漏洞

漏洞概述

kafka-sink-azure-kusto是微软官方提供的Azure Data Explorer连接器。在5.2.3版本之前,该插件在处理`kusto.tables.topics.mapping`配置时存在安全缺陷,未能对用户控制的值进行清理。攻击者若拥有修改连接器配置的权限,可利用该漏洞注入KQL元字符,在连接器服务主体上下文中执行任意管理命令,导致数据库架构被篡改或策略被修改。

技术细节

该漏洞的根本原因是kafka-sink-azure-kusto插件在构建KQL(Kusto Query Language)管理命令时,缺乏对用户输入的严格过滤。具体而言,代码直接使用`String.formatted(...)`方法将配置项`kusto.tables.topics.mapping`中的`db`、`table`、`mapping`和`format`字段动态拼接到预定义的命令模板中(例如`FETCH_TABLE_COMMAND`和`FETCH_TABLE_MAPPING_COMMAND`)。攻击者若具备修改Kafka Connect连接器配置的高权限,即可在上述字段中嵌入KQL元字符(如分号`;`、管道符`|`或单引号`'`)。通过精心构造的输入,攻击者能够绕过原有的命令逻辑,注入并执行任意KQL管理命令。这种注入使得攻击者能够以连接器的服务主体身份,对目标Azure Data Explorer数据库进行架构枚举、摄取映射篡改或修改流与保留策略等破坏性操作,严重威胁数据的完整性与可用性。

攻击链分析

STEP 1
1. 前期侦察
攻击者确认目标环境使用了易受攻击版本的kafka-sink-azure-kusto插件(< 5.2.3)。
STEP 2
2. 获取权限
攻击者获取Kafka Connect配置接口的高权限访问(PR:H),能够提交或编辑连接器配置。
STEP 3
3. 注入载荷
攻击者修改连接器配置中的`kusto.tables.topics.mapping`字段,在`db`、`table`等参数中插入KQL元字符(如`'`、`;`)。
STEP 4
4. 执行命令
插件重新加载配置并使用`String.formatted`构建KQL命令,将恶意载荷拼接后发送至Azure Data Explorer执行。
STEP 5
5. 达成影响
在目标数据库上下文中执行任意管理命令,导致数据架构被篡改、策略变更或敏感信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC: Malicious configuration payload for CVE-2026-42316 // This demonstrates how to inject a KQL command into the 'table' field. public class KqlInjectionPoc { public static void main(String[] args) { // 1. The vulnerable configuration field (e.g., 'table') // Input containing KQL metacharacters to break out of the string String maliciousTableInput = "my_table' | take 10 ; //"; // 2. Simulating the vulnerable String.formatted() logic found in the plugin // Original command pattern: .show table <table> ingestion json mapping '<mapping>' String formatPattern = ".show table %s ingestion json mapping 'default_mapping'"; // 3. Constructing the malicious command String exploitedCommand = String.format(formatPattern, maliciousTableInput); // 4. Output the resulting KQL command // Result: .show table my_table' | take 10 ; // ingestion json mapping 'default_mapping' // The ' closes the table name, allowing execution of ' | take 10' System.out.println("Generated Malicious KQL Command:"); System.out.println(exploitedCommand); } }

影响范围

kafka-sink-azure-kusto < 5.2.3

防御指南

临时缓解措施
在未升级之前,应严格限制能够修改Kafka Connect连接器配置的用户或服务账户权限。同时,建议全面审查现有的`kafka-sink-azure-kusto`连接器配置,特别是`kusto.tables.topics.mapping`字段,以检测并清除可能已注入的恶意KQL代码。

参考链接

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