在调查流行的开源项目 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/