2024 年 9 月安全发布
近日,Express 团队获悉 Express 项目中存在多项安全漏洞。我们已发布多项补丁来解决这些漏洞。
警告
我们强烈建议您尽快将这些模块升级到推荐(或最新)版本。
以下漏洞已得到解决
- body-parser 中间件中的高危漏洞 CVE-2024-45590
- basic-auth-connect 中间件中的高危漏洞 CVE-2024-47178
- Express 核心中的中危漏洞 CVE-2024-43796
- send 实用模块中的中危漏洞 CVE-2024-43799
- serve-static 中间件中的中危漏洞 CVE-2024-43800
- path-to-regexp 实用模块中的中危漏洞 CVE-2024-45296
body-parser 中间件中的高危漏洞 CVE-2024-45590
body-parser 版本 <1.20.3
在启用 URL 编码时存在拒绝服务漏洞
恶意攻击者可以通过使用特制载荷向服务器发送大量请求,导致拒绝服务。
受影响版本: <1.20.3
已修复版本: >=1.20.3
该漏洞是在 OSTIF 对 Express 的审计期间发现的,并由 Express 安全分类小组进行缓解。
欲了解更多详情,请参阅 GHSA-qwcr-r2fm-qrc7。
basic-auth-connect 中间件中的高危漏洞 CVE-2024-47178
basic-auth-connect 使用了时间不安全的等价比较
basic-auth-connect <1.1.0
使用了时间不安全的等价比较,这可能泄露时间信息
受影响版本
<1.1.0
已修复版本
>=1.1.0
该漏洞是在 OSTIF 对 Express 的审计期间发现的,并由 Express 安全分类小组进行缓解。
更多详情请参见 GHSA-7p89-p6hx-q4fw
Express 核心中的中危漏洞 CVE-2024-43796
核心 express 包通过 response.redirect()
易受跨站脚本 (XSS) 攻击。
在 Express 版本 <4.20.0 中,即使在清理之后,将不受信任的用户输入传递给 response.redirect()
也可能执行不受信任的代码。
受影响版本:
<4.20.0
>=5.0.0-alpha.1
,<5.0.0
已修复版本:
>=4.20.0
>=5.0.0
该漏洞是在 OSTIF 对 Express 的审计期间发现的,并由 Express 安全分类小组进行缓解。
欲了解更多详情,请参阅 GHSA-qw6h-vgh9-j6wx。
send 实用模块中的中危漏洞 CVE-2024-43799
send 实用模块存在模板注入漏洞,可能导致跨站脚本 (XSS) 攻击。
即使在清理之后,将不受信任的用户输入传递给 SendStream.redirect()
也可能执行不受信任的代码。
受影响版本: < 0.19.0
已修复版本: >=0.19.0
该漏洞是在 OSTIF 对 Express 的审计期间发现的,并由 Express 安全分类小组进行缓解。
欲了解更多详情,请参阅 GHSA-m6fv-jmcg-4jfg。
serve-static 中间件中的中危漏洞 CVE-2024-43800
serve-static 中间件模块存在模板注入漏洞,可能导致跨站脚本 (XSS) 攻击。
即使在清理之后,将不受信任的用户输入传递给 redirect()
也可能执行不受信任的代码。
受影响版本:
< 1.16.0
>=2.0.0
,<2.1.0
已修复版本:
>=1.16.0
>=2.1.0
该漏洞是在 OSTIF 对 Express 的审计期间发现的,并由 Express 安全分类小组进行缓解。
欲了解更多详情,请参阅 GHSA-cm22-4g7w-348p
path-to-regexp 实用模块中的中危漏洞 CVE-2024-45296
path-to-regexp 实用模块存在正则表达式拒绝服务 (ReDoS) 攻击漏洞。
每当在单个段内存在两个参数,且它们之间不是句点 (.
) 分隔时,就会生成一个有问题的正则表达式。例如,/:a-:b
。
使用 /:a-:b
将生成正则表达式 /^\/([^\/]+?)-([^\/]+?)\/?$/
。这可以通过 /a${'-a'.repeat(8_000)}/a
这样的路径进行利用。OWASP 提供了一个很好的例子来解释为什么会发生这种情况,但本质上,末尾的 /a
确保此路由永远不会匹配,但由于幼稚的回溯,它仍然会尝试对重复 8,000 次的 -a
执行 :a-:b
的所有组合。
由于 JavaScript 是单线程的,并且正则表达式匹配在主线程上运行,性能不佳会阻塞事件循环并可能导致 DoS。在本地基准测试中,利用不安全的正则表达式会导致性能比安全正则表达式差 1000 倍以上。在更现实的环境中,使用 Express v4 和十个并发连接会导致平均延迟约为 600 毫秒,而安全情况下为 1 毫秒。
受影响版本:
>=4.0.0
,<8.0.0
>=0.2.0
,<1.9.0
<0.1.10
>=2.0.0
,<3.3.0
>=4.0.0
,<6.3.0
已修复版本:
>=8.0.0
>=1.9.0
>=0.1.10
>=3.3.0
>=6.3.0
感谢 Blake Embrey 报告并创建了安全补丁。
欲了解更多详情,请参阅 GHSA-9wv6-86v2-598j
编辑此页面