10 月 21 日,开源 JavaScript 运行时 Node.js 针对 26.x、24.x、22.x 三个系列发布安全更新,一次性修复十余个漏洞,其中 4 个被评定为高危。

四个高危问题里,最需要立即处理的是 Brotli 解码器的越界写入缺陷。Brotli 是常用的压缩算法,服务端在处理压缩请求体时普遍会调用该解码器。一旦越界写入被触发,攻击者理论上可以实现远程代码执行,影响范围覆盖 26.x、24.x 与 22.x 全部三个系列。

另外三个高危漏洞都围绕域名与证书校验展开。其一是域名解析环节会截断包含 NUL 字符的主机名,导致实际解析的地址与程序判断的地址不一致;其二是当 IP 地址使用全角数字表示时,可以绕过 TLS 证书的主机名校验;其三是当主机名通过宽松解析能被解析成 IP 地址时,同样可以绕过证书校验。

中危漏洞同样值得留意。长连接会处理那些在请求发出之前就已写入的响应,可能造成响应错配;非规范 IPv4 主机名的证书校验存在逻辑缺陷,DNS 里的备用名称会被拿去验证 IP 端点;加密模块的熵缓存被写入用户态启动快照与单文件应用包,导致每个进程重复生成相同的随机值——对依赖随机数的场景来说,这是相当严重的问题。

低危项集中在文件与权限模型上:ZipFile 在文件头校验不通过时,仍会把攻击者可控的前缀字节返回给调用方;权限模型的通配符基数查找机制会授予过多文件系统权限;fs.realpathSync 可以绕过权限模型。

官方给出的修复版本为 22.23.4、24.22.1 与 26.12.1。对生产环境而言,升级前需要留意依赖链是否存在不兼容的 native 模块,建议先在测试环境验证构建与启动流程,再滚动替换。

Node.js 的漏洞节奏近年明显加快,这与它在服务端的普及程度直接相关。任何一次高危公告,背后都是大量暴露在公网的服务实例。对运维团队来说,把版本更新纳入常规巡检,比事后应急更划算。

文章与图片内容转载网络,如有侵权请联系平台删除

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部