Skywalking远程代码执行漏洞预警

admin 2021年2月7日03:43:36评论107 views字数 898阅读2分59秒阅读模式

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远程代码执行漏洞预警

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年2月7日03:43:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Skywalking远程代码执行漏洞预警http://cn-sec.com/archives/263519.html

发表评论

匿名网友 填写信息