900 万次下载的 JsonWebToken 漏洞让攻击者执行远程代码
2023-1-14 12:59:33 Author: Ots安全(查看原文) 阅读量:19 收藏

在调查流行的开源项目 JsonWebToken 的过程中,Unit 42 研究人员发现了一个新漏洞。

网络安全分析师将该漏洞追踪为CVE-2022-23529,该漏洞的 CVSS 评分为 7.6,严重程度为高。

攻击者可以利用此漏洞通过将恶意制作的 JWT 请求迁移到验证请求的服务器来获取 RCE。

有超过 22,000 个开源项目使用NPM上的 JsonWebToken 库,该库由Auth0维护,仅上个月的下载量就超过 3600 万次。

除此之外,安全分析师强烈建议使用JsonWebToken包版本 8.5.1 或更早版本的用户立即将他们的 JsonWebToken 包版本更新到 9.0.0。

由于此最新版本包含解决此安全漏洞的安全补丁。

几家大公司已经在他们的开源项目中使用了该库,包括:微软、Twilio等

JSON 认证流程

JSON 网络令牌用作简单的身份验证方法,让我们看一下:-

  • 用户必须输入凭据,例如用户名和密码,才能访问受保护的资源。

  • 将向包含此信息的身份验证端点发送身份验证请求。

  • 验证由身份验证服务器执行,该服务器根据请求中提供的信息创建使用密钥签名的 JWT。通过使用秘密管理器,此信息可以存储在服务器上或其他位置。

  • 每次用户请求授权标头时,JWT 将作为其中的一部分包含在内。通过这样做,具有正确权限的用户可以访问网络上受保护的资源。

  • 当请求访问受保护的资源时,应用程序会生成一个包含用户密码的 JWT 请求。

  • 在允许用户访问所请求的资源之前,授权标头中使用的密钥将用于验证授权标头中发送的 JWT。

身份验证过程

JWT 秘密中毒

当使用恶意制作的 JWS 令牌时,威胁参与者能够远程在服务器上执行代码。

由于此漏洞,JsonWebToken 的 verify() 方法允许在没有身份验证的情况下执行此操作,并将解码后的信息返回给用户。 

此方法接受三个参数,如下所示:-

  • The token

  • secretOrPublicKey

  • Options

攻击者有可能使用特制对象,该对象可以在目标机器上执行任意文件写入,因为“secretOrPublicKey”参数没有检查以确定它是否包含字符串或缓冲区。

秘密中毒

由于存在同样的缺陷,Unit42 报告说,如果请求中的有效载荷略有不同,则远程代码执行以相同的方式进行是可行的。

利用此漏洞并不容易,但考虑到潜在目标的数量,威胁参与者渴望利用它,我们不应低估他们这样做的渴望。 

今日安全动态推荐:
  • 探索 ZIP 网络标记绕过漏洞 (CVE-2022-41049)

https://breakdev.org/zip-motw-bug-analysis/

  • Windows 内核中的错误

https://dannyodler.hashnode.dev/racing-bugs-in-windows-kernel

  • 自动化恶意软件分析操作 (MAOps)

https://blogs.jpcert.or.jp/en/2023/01/cloud_malware_analysis.html

  • 黑客利用 Control Web Panel 漏洞打开反向 shell

https://www.bleepingcomputer.com/news/security/hackers-exploit-control-web-panel-flaw-to-open-reverse-shells/


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjYyMzkwOA==&mid=2247496409&idx=1&sn=a0c27a996f675fec6e00e06eed2e2744&chksm=9badbb92acda3284edb3c23c0f045134bd599c88a57b382e2dd137584d33d1719aabf073246a#rd
如有侵权请联系:admin#unsafe.sh