最近看的漏洞
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
真有意思啊这项目组。