天天看点

最新JWT远程代码执行漏洞

作者:血超级厚的土豆

最近Palo Alto Networks发布了一份技术安全咨询,涉及在JSON web令牌(JWT)中识别出的允许远程代码执行(RCE)的高严重漏洞。

JsonWebToken是一个开源JavaScript包,允许验证/签署jwt,用于授权和身份验证目的。它由Auth0开发和维护,每周有超过900万的下载量和超过2万的依赖。这个包被许多应用程序用于身份验证和授权功能。

基于通用漏洞和暴露(CVE)的命名标准和通用漏洞评分系统定义的严重程度标准(CVSS),漏洞分为高、中、低。表1总结了漏洞类型及其相关得分。

最新JWT远程代码执行漏洞
最新JWT远程代码执行漏洞

漏洞详情

对JWT的攻击将涉及不同的伪造技术,通过滥用有bug的JWT触发,并允许攻击者绕过身份验证和授权机制来访问敏感信息或窃取和/或修改数据。

JWT包提供的验证方法接收三个参数:token、secretOrPublicKey和options。verify函数验证JWT的有效性,并返回已解码的有效负载部分。

secretOrPublicKey是一个字符串或缓冲区。当options算法列表中没有允许的算法时,PEM文件中由参数secretOrPublicKey提供的值将被分配给options。该包没有检查secretOrPublicKey是字符串还是缓冲区,它盲目地使用toString()方法,这导致了问题。

当通过secretOrPublicKey参数将恶意对象传递给验证函数并覆盖其toString()方法时,将导致在主机上成功写入任意文件。

最新JWT远程代码执行漏洞

上述PoC发现了可以被攻击者利用的漏洞,并可以在服务器上实现远程代码执行(RCE),验证恶意制作的JSON web令牌(JWT)请求。

继续阅读