内容提要
Node.js发布了针对多个安全漏洞的更新,包括CVE-2022-35255和CVE-2022-32212。用户需重新生成WebCrypto密钥,并评估加密数据的机密性。更新将于2022年9月22日发布,涵盖14.x、16.x和18.x版本的中高危问题。
延伸解读
WebCrypto密钥需重新生成
安全更新指出,使用WebCrypto.subtle.generateKey()生成的密钥可能存在安全风险。用户应重新生成所有此类密钥,并重新评估使用这些密钥加密的数据的机密性。这是因为EntropySource()可能失败,而Node.js未检查其返回值,导致密钥生成可能不安全。
macOS上的DNS重绑定绕过风险
CVE-2022-32212的修复覆盖了可路由IP地址,但在macOS设备上处理http://0.0.0.0 URL时存在特定行为。攻击者控制的DNS服务器可以将<Computer Name>.local解析为任意IP地址,从而绕过DNS重绑定保护,使受害者浏览器加载任意内容。
HTTP请求走私漏洞影响多个版本
由于CVE-2022-32215修复不完整,Node.js v16.16.0和18.7.0中的llhttp解析器仍无法正确处理多行Transfer-Encoding头,可能导致HTTP请求走私。此外,CVE-2022-32213的修复可被obs-fold绕过,当Node.js HTTP模块用作代理时,可能错误解析Transfer-Encoding头,导致请求走私。
OpenSSL配置读取问题
在Node.js 18及更高版本中,启动时进程会尝试读取macOS上不存在的/home/iojs/build/ws/out/Release/obj.target/deps/openssl/openssl.cnf文件。攻击者若能在共享macOS主机上使用自选用户名(iojs),可能影响其他用户的OpenSSL配置。
Q&A
Node.js的最新安全更新主要解决了哪些漏洞?
最新安全更新主要解决了CVE-2022-35255和CVE-2022-32212等多个漏洞。
用户在更新后需要采取哪些措施?
用户需重新生成使用WebCrypto.subtle.generateKey()生成的密钥,并评估加密数据的机密性。
此次更新适用于哪些Node.js版本?
此次更新适用于Node.js的14.x、16.x和18.x版本。
CVE-2022-32212漏洞的具体影响是什么?
CVE-2022-32212在macOS设备上处理http://0.0.0.0 URL时,允许攻击者绕过DNS重绑定保护。
Node.js的llhttp解析器存在什么问题?
llhttp解析器在Node.js v16.16.0和18.7.0中未正确处理多行Transfer-Encoding头,可能导致HTTP请求走私。
Node.js安全团队为何需要额外的工作时间?
Node.js安全团队需要额外一天的工作以确保二进制文件准备就绪,更新计划于2022年9月23日发布。