关于Node.js 7月多个安全漏洞的公告
一、漏洞概述
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
2022年7月7日,Node.js发布更新公告,修复了影响Node.js 18.x、16.x 和14.x所有发行版的多个安全漏洞。
二、漏洞详情
本次修复的7个漏洞中,有2个漏洞为高危,5个漏洞为中危,详情如下:
CVE ID | 名称 | 严重程度 | 描述 |
CVE-2022-32213 | HTTP 请求走私漏洞 | 中危 | http模块中的llhttp解析器没有正确解析和验证Transfer-Encoding头,可能导致HTTP请求走私(HRS)。 |
CVE-2022-32214 | HTTP 请求走私漏洞 | 中危 | http模块中的llhttp解析器没有严格使用CRLF序列来限定HTTP请求,可能导致HTTP请求走私 。 |
CVE-2022-32215 | HTTP 请求走私漏洞 | 中危 | http模块中的llhttp解析器不能正确处理多行Transfer-Encoding头信息,可能导致HTTP请求走私 。 |
CVE-2022-32212 | DNS重绑定 | 高危 | 由于IsIPAddress没有正确检查IP地址是否无效,导致IsAllowedHost检查很容易被绕过。可以通过向浏览器提供无效的IPv4地址,浏览器将向DNS服务器发出DNS请求,为恶意DNS服务器或欺骗DNS响应的MITM攻击提供载体,以执行重新绑定攻击并连接到WebSocket调试器,从而实现任意代码执行。 |
CVE-2022-32223 | Windows DLL劫持漏洞 | 高危 | 如果Windows上有以下依赖:安装了OpenSSL并且 C:\Program Files\Common Files\SSL\openssl.cnf 存在,node.exe会尝试通过Windows中的DLL搜索顺序来搜索 providers.dll,可以通过将恶意文件 providers.dll 置于各种路径下并利用此漏洞。 |
CVE-2022-32222 | 启动时尝试读取文件 | 中危 | 当Node.js在基于linux的系统上启动时,它会试图读取/home/iojs/build/ws/out/Release/obj.target/deps/openssl/openssl.cnf,这个文件通常不存在。可以通过创建此文件并利用此漏洞影响其他用户(共享系统中)的默认 OpenSSL 配置。 |
CVE-2022-2097 | OpenSSL AES OCB加密漏洞 | 中危 | 在某些情况下,使用 AES-NI 程序集优化实现的 32 位 x86 平台的 AES OCB 模式不会加密整个数据,在某些情况下可能会暴露16个字节的明文。 |
三、处置建议
目前Node.js已经修复了这些漏洞,受影响用户可升级到以下版本:
Node.js v14.20.0 (LTS)
Node.js v16.16.0 (LTS)
Node.js v18.5.0 (Current)
下载链接:
https://nodejs.org/en/download/
四、参考链接
https://nodejs.org/en/blog/vulnerability/july-2022-security-releases/
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32212