首页 网络安全 正文

DTStack Taier命令注入漏洞CVE-2026-9437

摘要

栋科技漏洞库关注到 DTStack Taier 相关版本中存在的命令注入漏洞,该漏洞现在已经被追踪为CVE-2026-9437,CVSS3.X评分为9.8。

DTStack Taier(太阿)啊袋鼠云开源的分布式可视化 DAG 任务调度系统,面向大数据 ETL 与工作流编排,Apache 协议、免费商用。

一、基本情况

DTStack Taier 是开源大数据开发平台,用于任务提交、调度、运维和指标展示,可以帮助企业快速搭建稳定、高效的数据处理流水线。

NitroSense本地权限提升漏洞CVE-2026-9489

DTStack Taier 是一款一站式大数据任务开发、调度、运维平台,解决任务依赖复杂、调度不稳、运维难等问题,降低大数据开发门槛。

栋科技漏洞库关注到 DTStack Taier 相关版本中存在的命令注入漏洞,该漏洞现在已经被追踪为CVE-2026-9437,CVSS3.X评分为9.8。

二、漏洞分析

CVE-2026-9437漏洞是 DTStack Taier 平台中存在的一个通过 SQL 文本的存储型注入远程代码执行漏洞,该漏洞的潜在安全风险极高。

该漏洞源于用户传入的 SQL 文本存入 MySQL 数据库后,未经过滤处理便交由 Runtime.exec () 执行。

攻击者可通过 sqlText 参数注入系统命令,该参数经由接口传入、数据库存储,最终触发命令执行,详细分析如下:

相关版本REST API接收sqlText参数后,ScriptService.dealScriptStandAloneParams()将其直接传递给 ScriptUtil.buildShellCommand(),

该方法将 sqlText 内容写入 shell 脚本文件后拼接为 "sh <scriptPath>" 命令。

ScriptJob.run() 方法通过 Runtime.getRuntime().exec(new String[]{"sh", "-c", shellFullCommand}) 执行该命令,

由于 sqlText 未经任何过滤或转义,攻击者可通过 shell 元字符(;、|、&、$( )、``等)注入任意 OS 命令,实现远程代码执行。

三、POC概念验证

(一)数据流向

应用程序接口(sqlText)→ MySQL 数据库存储 → Runtime.exec ("sh -c <sqlText>")

写入流程(接口至数据库)

接口接收用户传入的 sqlText 参数

该 SQL 文本通过 MyBatis 映射器存入数据库,未做过滤处理

仅进行数据类型校验,未对 sqlText 内容做安全检测

读取流程(数据库至命令执行)

从数据库读取已存储的 sqlText 内容

内容拼接前缀 "sh -c" 后传入 Runtime.exec () 执行

若内容中存在攻击者构造的特殊字符,将触发操作系统命令注入

(二)攻击方式

方式一:存储型注入

攻击者通过接口提交包含 Shell 命令注入语句(例如;rm -rf /)的 SQL 文本。恶意内容存入数据库后,在任务运行时被执行。

方式二:直接执行

sqlText 参数内的 Shell 元字符会被 /bin/sh -c 解析执行。

权限要求

相关接口需身份认证,拥有任务创建权限的任意用户均可利用此漏洞。

(三)漏洞佐证

sqlText 参数从接口传入到交由 Runtime.exec ("sh -c ...") 执行的全流程均未做过滤处理。

数据读写环节未实施输入校验、命令白名单及参数化执行等安全措施。

(四)修复建议

输入校验:按照规范格式校验 SQL 文本,拦截分号、竖线、与号、反引号、$() 等 Shell 特殊字符

参数化执行:使用 ProcessBuilder 传入独立参数列表,而非拼接字符串调用 Runtime.exec ("sh -c" + 输入内容)

命令白名单:仅允许执行预设范围内的命令

最小权限原则:以最低系统权限运行执行进程

四、影响范围

DTStack Taier ≤ 1.4.0

五、修复建议

DTStack Taier > 1.4.0 

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接