Node.js团队近日发布重要安全公告,高危针对24.x、漏洞23.x、警报22.x和20.x版本系列推出关键更新
。远程这些补丁修复了从低危到高危的系统一系列安全漏洞 。 最严重的崩溃是一个被评定为"高危"的漏洞,涉及异步加密操作中的高危错误处理不当问题 。公告指出:"当在后台线程执行时,漏洞C++方法SignTraits::DeriveBits()可能基于用户提供的高防服务器警报输入错误地调用ThrowException()
,导致Node.js进程崩溃
。远程"这尤其令人担忧,系统因为"此类加密操作通常应用于不受信任的崩溃输入
,因此攻击者可能利用此机制远程使Node.js运行时崩溃。高危" 该漏洞影响所有活跃版本系列的漏洞用户:20.x、22.x 、警报23.x和24.x。成功利用此漏洞可能导致Node.js进程崩溃,造成拒绝服务,进而使关键服务中断
。免费模板 接下来是一个被评定为"中危"的漏洞,涉及Node.js使用的HTTP解析器llhttp中的HTTP头部块终止不当问题 。公告称:"Node.js 20的HTTP解析器存在缺陷,允许使用\r\n\rX而非要求的\r\n\r\n来终止HTTP/1头部。"这种看似微小的不一致性具有重大影响 :"这种不一致性可能导致请求走私 ,源码库使攻击者能够绕过基于代理的访问控制并提交未经授权的请求。" 该漏洞特别影响运行llhttp v9之前版本的Node.js 20.x用户
。绕过代理控制的能力可能导致未经授权的访问,并可能暴露敏感信息或内部系统。该问题已通过将llhttp升级至版本9得到修复,新版本现在强制执行正确的头部终止。 最后是一个被评定为"低危"的问题 ,涉及当第一个参数(args[0])为字符串时,node::fs::ReadFileUtf8函数中的指针损坏问题。公告详细说明 :"在Node.js中
,由于uv_fs_s.file中的指针损坏,ReadFileUtf8内部绑定会泄漏内存:分配了UTF-16路径缓冲区
,但在设置文件描述符时被覆盖。"其后果是"每次调用都会造成不可恢复的亿华云内存泄漏。"随着时间的推移,"重复使用可能导致内存无限增长,最终造成拒绝服务。" 此内存泄漏影响Node.js v20和v22版本系列中依赖ReadFileUtf8的API。虽然评级为低危,但持续的内存泄漏最终会降低性能,并通过耗尽系统内存导致拒绝服务
。 为降低风险,建议用户尽快更新至以下最新修补版本: