IPBUF安全漏洞报告
English
CVE-2026-35194 CVSS 8.1 高危

CVE-2026-35194 Apache Flink SQL代码注入漏洞

披露日期: 2026-05-15

漏洞信息

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

相关标签

代码注入RCEApache FlinkSQL注入CVSS-8.1

漏洞概述

Apache Flink在SQL代码生成过程中存在代码注入漏洞。该漏洞影响1.15.0至1.20.x版本以及2.0.0至2.x版本。拥有查询提交权限的认证攻击者可以通过精心构造的恶意SQL查询,在TaskManagers上执行任意代码。漏洞根源在于处理JSON函数和带有ESCAPE子句的LIKE表达式时,用户控制的字符串被直接插入到生成的Java代码中,且未经过适当的转义处理。这允许攻击者突破字符串字面量限制,注入任意表达式,从而控制服务器。

技术细节

该漏洞的核心在于Apache Flink SQL引擎将用户查询转换为可执行Java代码的过程中缺乏安全过滤。当Flink处理包含JSON函数(如1.15.0+)或包含ESCAPE子句的LIKE表达式(如1.17.0+)的SQL语句时,它会生成相应的Java代码。在这些特定场景下,系统直接将用户输入的字符串拼接到生成的代码逻辑中,而没有进行严格的转义。攻击者利用这一缺陷,可以在SQL字符串中嵌入特定的Java语法字符(如引号闭合符、表达式操作符等)。通过构造特殊的输入,攻击者能够闭合原本的字符串定义,并将恶意的Java表达式注入到生成的代码流中。当TaskManager执行这段被篡改的代码时,攻击者注入的逻辑将被运行,从而导致在远程服务器上执行任意代码。

攻击链分析

STEP 1
1. 获取访问权限
攻击者需要拥有Apache Flink Web UI或SQL接口的有效认证凭据,并拥有提交SQL查询的权限。
STEP 2
2. 构造恶意Payload
攻击者设计特定的SQL字符串,利用JSON函数或LIKE ESCAPE子句的特性,在字符串中嵌入能够闭合Java字符串字面量的字符(如双引号)以及恶意的Java代码表达式。
STEP 3
3. 提交恶意查询
攻击者将包含恶意Payload的SQL语句提交给Apache Flink的JobManager进行处理。
STEP 4
4. 代码生成与注入
Flink的SQL引擎在将SQL查询转换为Java代码(Code Gen阶段)时,直接拼接了用户输入。由于缺乏转义,攻击者的Payload破坏了生成的Java代码结构,注入了任意可执行代码。
STEP 5
5. 执行任意代码
TaskManager加载并执行被篡改的Java代码,导致攻击者在TaskManager所在的远程服务器上执行任意系统命令。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
-- Conceptual PoC for CVE-2026-35194 -- Targeting JSON_VALUE code generation in Apache Flink -- The vulnerability allows breaking out of string literals in the generated Java code. -- An attacker can inject arbitrary Java expressions. -- Example malicious SQL query: SELECT JSON_VALUE(data, '$.key') FROM source_table WHERE data = '{"key": "' + '}; /* Malicious Java Code Injection */ java.lang.Runtime.getRuntime().exec("calc"); // ' + ""}'; -- Note: The actual payload syntax depends on the specific code generation template -- used by the affected Flink version for JSON functions or LIKE...ESCAPE clauses.

影响范围

Apache Flink 1.15.0 - 1.20.x
Apache Flink 2.0.0 - 2.x

防御指南

临时缓解措施
如果暂时无法升级,应严格限制拥有SQL查询提交权限的用户账户,并仔细审查所有提交的SQL查询内容。同时,应加强对TaskManager所在主机的安全监控,防止潜在的代码执行攻击。

参考链接

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