2024 年 9 月安全发布

2024 年 9 月 29 日

近日,Express 团队获悉 Express 项目中存在多项安全漏洞。我们已发布多项补丁来解决这些漏洞。

警告

我们强烈建议您尽快将这些模块升级到推荐(或最新)版本。

以下漏洞已得到解决

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 使用了时间不安全的等价比较,这可能泄露时间信息

受影响版本

已修复版本

该漏洞是在 OSTIF 对 Express 的审计期间发现的,并由 Express 安全分类小组进行缓解。

更多详情请参见 GHSA-7p89-p6hx-q4fw

Express 核心中的中危漏洞 CVE-2024-43796

核心 express 包通过 response.redirect() 易受跨站脚本 (XSS) 攻击

在 Express 版本 <4.20.0 中,即使在清理之后,将不受信任的用户输入传递给 response.redirect() 也可能执行不受信任的代码。

受影响版本:

已修复版本:

该漏洞是在 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() 也可能执行不受信任的代码。

受影响版本:

已修复版本:

该漏洞是在 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 毫秒。

受影响版本:

已修复版本:

感谢 Blake Embrey 报告并创建了安全补丁。

欲了解更多详情,请参阅 GHSA-9wv6-86v2-598j

编辑此页面