Skywalking远程代码执行漏洞预警

  • A+
所属分类:安全漏洞

01

时间轴

2021-01-23
蚂蚁安全非攻实验室 @fatansyC4t 向Apache官方报告了Apache Skywalking远程代码执行漏洞

2021-02-04
Apache Skywalking官方发布了补丁,修复了该漏洞。

2021-02-07
阿里云安全发布漏洞风险提示。

02

漏洞分析

Skywalking历史上存在两次sql注入漏洞,CVE-2020-9483、CVE-2020-13921。经过源码分析,发现两次sql注入漏洞修复并不完善,仍存在一处sql注入漏洞。(该请求无页面入口,需要根据graphql配置文件手动进行请求构造,或许这就是官方遗漏该注入点的原因)

Skywalking默认配置下使用的数据库为h2,且使用sa权限启动。 


Skywalking远程代码执行漏洞预警

 



Skywalking远程代码执行漏洞预警


通过查询官方文档得知,h2数据库存在写文件函数FILE_WRITE(需要admin权限执行),文件内容及文件名均可控。 


Skywalking远程代码执行漏洞预警

另一个LINK_SCHEMA函数可以指定并发起一次jdbc或者jndi请求,但由于目标环境中无tomcat和springboot依赖,所以在高版本jdk中也无法进行通用的jndi利用,需要在本地依赖中寻找reference链。 

Skywalking远程代码执行漏洞预警

进一步分析LINK_SCHEMA底层源码,发现代码中存在一处类加载过程,而这个类就是sql函数的第二个参数,用户可控。(这个参数用于指定本次使用的jdbc驱动类或者jndi context类) 


Skywalking远程代码执行漏洞预警

于是我们可以先利用任意文件写入函数在classpath中写一个恶意类,然后再使用LINK_SCHEMA函数来加载这个恶意类,实现远程代码执行。

03

漏洞证明

Skywalking远程代码执行漏洞预警

04

修复建议

1、升级Apache Skywalking 到最新的 v8.4.0 版本。

2、将默认h2数据库替换为其它支持的数据库。

05

安全产品


安全产品 解决方案
云盾WAF
已可防护该类漏洞,并提供7天免费漏洞应急服务,为 您争取漏洞修复时间,应急开通地址:https://c.tb.cn/I3.XzCtR
阿里云云安全中心 应急漏洞模块已支持对该漏洞一键检测
阿里云云防火墙  已可以防御此攻击

         Skywalking远程代码执行漏洞预警


本文始发于微信公众号(阿里云先知):Skywalking远程代码执行漏洞预警

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: