Express 中的 qs 模块存在原型污染漏洞

时间:2022-12-01 08:07:26

漏洞描述

Express 是一个基于 Node.js 的 Web 框架,qs 是一个具备附加安全特性的查询字符串(querystring)解析和序列化库,Express 默认使用 qs 模块进行查询字符串解析。

qs 的受影响版本中由于 parseObject 方法没有对 js 对象的“proto”属性进行正确判断,导致攻击者可以通过 qs 解析具有过长数组属性的 js 对象造成拒绝服务。在 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编号 -

影响范围

express@(-∞, 4.17.3)

qs@[6.4.0, 6.4.1)

qs@[6.2.0, 6.2.4)

qs@[6.8.0, 6.8.3)

qs@[6.5.0, 6.5.3)

qs@[6.3.0, 6.3.3)

qs@[6.9.0, 6.9.7)

qs@[6.10.0, 6.10.3)

qs@[6.7.0, 6.7.3)

qs@[6.6.0, 6.6.1)

修复方案

升级express到 4.17.3 或更高版本

升级qs到 6.2.4 或 6.3.3 或 6.4.1 或 6.5.3 或 6.6.1 或 6.7.3 或 6.8.3 或 6.9.7 或 6.10.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

具体订阅方式详见:

https://www.oscs1024.com/docs/vuln-warning/intro/?src=osc

Express 中的 qs 模块存在原型污染漏洞