最近看的漏洞

CVE-2022-23529—— 自嗨RCE

先看下国内的漏洞通告,叫做“node-jsonwebtoken远程代码执行漏洞”。CVSS 7.6 ,风险很高了可以说是。

看下这个开源项目影响力, https://github.com/auth0/node-jsonwebtoken 16.1k的star数,挺多的。

怎么就没人分析下详情呢?

再看下git的commit的记录,https://github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3 ,说实话没太看明白,怎么扯上toString这个函数的。

一通google,最后在 https://unit42.paloaltonetworks.com/jsonwebtoken-vulnerability-cve-2022-23529/ 找到了细节,后来才想起来,在twitter看过这篇文章,当时没注意到是这个洞。

看完之后第一反应,就这啊?

简单分析如下:

  • 这个库有个verify 函数,函数接收三个参数,第一个参数是token,第二个参数是密钥secretOrPublicKey,第三个可选参数。
  • verify函数执行后会有如下函数调用,在这里调用了secretOrPublicKey的toString()函数

  • 如果这个参数secretOrPublicKey不是字符串,而是一个 {toString: () => console.error("PWNED !!11")}; 这样的对象,那就有代码执行的风险

看完我就无语了…..verify第二个参数一般能不能可控都是问题,如果是字符串能rce那确实是问题挺严重的,但这里还得是这样的对象??? 都能传一个这样的对象到这个函数,不早都代码执行了….. 什么垃圾洞啊,难怪没人分析

Apache Kylin多个命令注入漏洞—— Remove useless code

这个很常见的项目了,看下影响版本:

  • Kylin 2.x
  • Kylin 3.x
  • Kylin 4.x < 4.0.3

也就是最新的4.0.3不受影响。 直接对比4.0.2 https://github.com/apache/kylin/compare/kylin-4.0.2...kylin-4.0.3

说实话,这些commit名称啊,也没security rce vul safe之类的关键字,这也太难找了吧。

无语之时,一个commit映入眼帘,随手点击一看。 https://github.com/apache/kylin/commit/fd2977e21c51f1afed668f2d9713cf562f2dc42d

看到这就懂了,和之前那几个rce如出一辙,顺着数据流简单走一遍就完事了。

这个commit叫做 Remove useless code 真有意思啊这项目组。