漏洞描述
Express 是一个基于 Node.js 的 Web 框架,qs 是一个增加了一些安全性的查询字符串解析和序列化字符串的库。
qs 的受影响版本中由于 parseObject 方法没有对 js 对象的“proto”属性进行限制,导致攻击者可以在 js 对象的 “proto”属性中设置自定义长度的数组,如果数组的长度过大则会导致程序拒绝服务。在 4.17.3 之前的 Express 会受到此漏洞的影响,未经身份验证的远程攻击者可以将 payload(如:a[proto]=b&a[proto]&a[length]=100000000)传入用于访问应用程序的 URL 的查询字符串中,在 qs 解析 URL 时导致 Express 应用程序的 Node 进程被挂起。
漏洞名称 | Express 中的 qs 模块存在原型污染漏洞 |
---|---|
漏洞类型 | 原型污染 |
发现时间 | 2022-11-27 |
漏洞影响广度 | 广 |
MPS编号 | MPS-2022-3967 |
CVE编号 | CVE-2022-24999 |
CNVD编号 | - |
影响范围
qs@[6.8.0, 6.8.3)
qs@[6.6.0, 6.6.1)
qs@[6.5.0, 6.5.3)
qs@[6.2.0, 6.2.4)
qs@[6.3.0, 6.3.3)
qs@[6.4.0, 6.4.1)
express@(-∞, 4.17.3)
qs@[6.9.0, 6.9.7)
qs@[6.7.0, 6.7.3)
qs@[6.10.0, 6.10.3)
修复方案
将组件 qs 升级至 6.3.3 及以上版本
将组件 qs 升级至 6.4.1 及以上版本
将组件 express 升级至 4.17.3 及以上版本
将组件 qs 升级至 6.9.7 及以上版本
将组件 qs 升级至 6.7.3 及以上版本
将组件 qs 升级至 6.6.1 及以上版本
将组件 qs 升级至 6.5.3 及以上版本
将组件 qs 升级至 6.2.4 及以上版本
将组件 qs 升级至 6.10.3 及以上版本
将组件 qs 升级至 6.8.3 及以上版本
参考链接
https://www.oscs1024.com/hd/MPS-2022-3967
https://nvd.nist.gov/vuln/detail/CVE-2022-24999
https://github.com/ljharb/qs/pull/428
https://github.com/ljharb/qs/pull/428/commits/8b4cc14cda94a5c89341b77e5fe435ec6c41be2d
https://github.com/n8tz/CVE-2022-24999
情报订阅
OSCS(开源软件供应链安全社区)通过最快、最全的方式,发布开源项目最新的安全风险动态,包括开源组件安全漏洞、事件等信息。同时提供漏洞、投毒情报的免费订阅服务,社区用户可通过配置飞书、钉钉、企业微信机器人,及时获得一手情报信息推送:
https://www.oscs1024.com/cm/?src=osc
具体订阅方式详见: