CVE-2026-35194Apache 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执行这段被篡改的代码时,攻击者注入的逻辑将被运行,从而导致在远程服务器上执行任意代码。