内容提要
Node.js v18.x和v20.x版本发布了安全更新,修复了多个高危漏洞,包括跨域重定向中的Cookie泄露和流的拒绝服务攻击。新版本将于2023年10月13日发布,建议用户关注Node.js安全政策和漏洞报告流程。
延伸解读
漏洞影响范围与版本差异
本次安全更新涉及Node.js v18.x和v20.x两个发布线。所有活跃发布线均受undici和nghttp2安全补丁影响,这些补丁被评级为高危问题。此外,v20.x发布线还受2个高危、1个中危和1个低危问题影响;v18.x发布线则受1个中危和1个低危问题影响。用户需根据自身使用的版本评估风险。
关键漏洞的技术细节
Undici在跨域重定向时未清除Cookie头,可能导致Cookie泄露给第三方站点或恶意重定向目标。快速创建和取消流(HEADERS帧后立即跟RST_STREAM)可导致拒绝服务。路径遍历漏洞源于应用可用用户定义实现覆盖内置工具函数,且非Buffer的Uint8Array对象可绕过路径遍历防护。策略功能可被拦截并返回伪造校验和,从而禁用完整性检查。恶意构造的WebAssembly模块导入名称可注入JavaScript代码。
实验性功能的风险提示
文章指出,权限模型和策略机制在CVE发布时均为Node.js的实验性功能。这意味着这些功能可能不够稳定,且相关漏洞可能带来额外风险。使用这些实验性功能的用户应特别关注更新,并考虑在生产环境中谨慎评估其使用。
更新建议与后续步骤
Node.js项目计划于2023年10月13日或之后不久发布新版本,以修复上述问题。建议用户关注Node.js安全政策,并按照漏洞报告流程反馈问题。可订阅nodejs-sec邮件列表以获取安全漏洞和发布的最新信息。及时更新是降低风险的关键。
Q&A
Node.js v18.x和v20.x版本的安全更新修复了哪些漏洞?
修复了跨域重定向中的Cookie泄露和流的拒绝服务攻击等多个高危漏洞。
新版本的Node.js将于什么时候发布?
新版本将于2023年10月13日发布。
Node.js的安全政策在哪里可以找到?
Node.js的当前安全政策可以在https://nodejs.org/security/找到。
什么是跨域重定向中的Cookie泄露?
跨域重定向中的Cookie泄露是指在不当处理Cookie头时,可能将Cookie泄露给第三方网站或恶意攻击者。
Node.js的拒绝服务攻击是如何发生的?
拒绝服务攻击发生在快速创建和取消流时,导致系统无法处理请求。
如何报告Node.js中的安全漏洞?
可以按照https://github.com/nodejs/node/security/policy中概述的流程报告Node.js中的安全漏洞。