Node.js 12.22.9(长期支持版)

Node.js 12.22.9(长期支持版)

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

Node.js 存在多个安全漏洞,包括对证书处理不当和注入攻击风险。修复版本禁用了 URI 类型的主题备用名称(SAN),并改进了多值相对区分名称。用户可通过命令行选项恢复旧行为。详细信息将在 CVE-2021-44531、CVE-2021-44532 和 CVE-2021-44533 中发布。

🔎

延伸解读

证书验证漏洞的修复与影响

本次更新修复了三个证书验证相关的安全漏洞:CVE-2021-44531、CVE-2021-44532 和 CVE-2021-44533。修复后,Node.js 在检查证书与主机名匹配时禁用了 URI 类型的主题备用名称(SAN),并对包含问题字符的 SAN 进行转义以防止注入,同时不再接受多值相对区分名称。这些改动可能影响依赖旧有宽松行为的应用,但提升了安全性。

临时恢复旧行为的选项

如果升级后出现兼容性问题,用户可以通过命令行选项 --security-revert 临时恢复旧行为。但需注意,这会使系统重新暴露于上述漏洞的风险中,因此仅建议在充分评估风险后短期使用,并尽快调整代码以适应新的安全策略。

第三方代码的潜在风险

对于 CVE-2021-44533,Node.js 自身不再接受多值相对区分名称,因此不受影响。但第三方代码如果依赖 Node.js 对证书主题的模糊表示,可能仍然存在漏洞。开发者应检查依赖库,确保它们正确处理证书主题,避免因解析歧义导致验证绕过。

console.table 原型污染漏洞

此外,本次更新还修复了 console.table() 中的原型污染漏洞(CVE-2022-21824)。当用户可控输入被传递给 properties 参数,且第一个参数是包含至少一个属性的普通对象时,可能通过 __proto__ 污染原型。修复后使用空原型对象来分配属性,限制了污染的影响。

❓

Q&A

Node.js 12.22.9 修复了哪些安全漏洞?

修复了对证书处理不当和注入攻击的安全漏洞。

如何恢复 Node.js 的旧行为?

用户可以通过命令行选项 --security-revert 恢复旧行为。

CVE-2021-44531、CVE-2021-44532 和 CVE-2021-44533 具体讲了什么?

这些 CVE 将提供关于 Node.js 安全漏洞的详细信息。

Node.js 是如何处理主题备用名称(SAN)的?

Node.js 将 SAN 转换为字符串格式以检查证书与主机名的匹配。

Node.js 12.22.9 的修复版本禁用了什么功能?

修复版本禁用了 URI 类型的主题备用名称(SAN)。

Node.js 的多值相对区分名称处理有什么问题?

Node.js 未正确处理多值相对区分名称,可能导致安全漏洞。

🏷️

标签

➡️

继续阅读