OpenAI 的 Codex 发现了一个 Node.js B... 笔记

OpenAI 的 Codex 发现了一个 Node.js Brotli 远程代码执行漏洞。Imperva 在官方构建中运行了代码。

Node.js 中的 Brotli 解码器发现了一个严重漏洞(CVE-2026-111497),可能导致内存损坏、信息泄露或远程代码执行。该漏洞影响 Node.js 22、24 和 26 版本,但 Node 20 不会获得修复。该问题源于解码器在遇到无效块切换时,尝试向一个八字节的内部缓冲区追加数据。OpenAI Codex Security 的研究人员报告了此缺陷,Imperva 成功在原生 Node.js 镜像中演示了代码执行。该漏洞可通过 Node.js 应用程序获取的压缩响应,或由 Express 5 等框架处理的 Brotli 编码请求体触发。虽然测试中代码执行需要多次尝试,但导致拒绝服务或有限内存读取的崩溃更容易实现。官方 Node.js 安全公告将该漏洞评级为“高”,而非“严重”,尽管部分媒体给出了更高的 CVSS 评分。修复方案已存在于 Node.js 22.23.4、24.22.1 和 26.12.1 版本中。至关重要的是,Node 20 及更早版本已处于生命周期结束(EOL)状态,不会接收补丁,因此必须进行升级。此次更新还解决了包括高严重性 TLS 和 DNS 问题在内的另外九个 CVE。敦促各组织审计所有 Node.js 实例,包括嵌入容器镜像、CI 运行器和虚拟机中的实例,因为这些实例常被忽视。提供的 check-node.mjs 脚本可帮助识别受影响的 Node.js 版本。开发人员还应审查其代码,查找直接的 Brotli 解压缩调用。虽然像 Vercel 这样的 WAF 可以阻止入站攻击,但它们无法保护 Node.js 获取的响应中存在的恶意 Brotli 内容,这凸显了持续打补丁的必要性。此漏洞强调了全面理解已部署运行时的重要性,相关内容在作者的书《Ship It》中有所阐述。作者还开发了 Hermes IDE,这是一款面向开发人员的 AI 驱动集成开发环境。
CdXz5zHNQW_WGD8ybkYPu.webp