Node.js 2018年6月安全更新深度解析:五个 DoS 漏洞(CVE-2018-7161/7162/7164/7167/1000168)的成因、影响面与修复对照
Node.js 2018年6月安全更新深度解析五个 DoS 漏洞CVE-2018-7161/7162/7164/7167/1000168的成因、影响面与修复对照【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org2018 年 6 月 12 日Node.js 官方发布了覆盖全部活跃发布线release line的安全更新一次性修复了五个可被远程利用的拒绝服务Denial of Service, DoS漏洞。本文以 nodejs.org 仓库中的官方安全公告 june-2018-security-releases.md 为主体逐一拆解每个 CVE 的攻击原理、受影响版本矩阵、官方修复方式并结合仓库内对应的四个版本发布帖v10.4.1、v9.11.2、v8.11.3、v6.14.3给出精确的修复对照表。读完本文你将掌握这批漏洞的完整攻击面评估方法、各发布线的升级路径以及如何在 nodejs.org 仓库中溯源验证安全公告与修复提交。说明本文涉及的所有 Node.js 版本6.x–10.x如今均已超出生命周期EOL。本文内容定位为历史安全公告的深度解读与漏洞分析范式参考同时其公告—修复版本—回归测试的协作方式至今仍是 Node.js 安全响应的标准流程。公告背景从预告到更新的完整时间线官方公告文档结构本身就体现了 Node.js 安全披露的两阶段流程初始预告Initial announcementNode.js 团队预告将于 2018 年 6 月 12 日UTC前后为所有受支持的发布线发布新版本其中包含多项安全修复并提前给出各发布线的漏洞数量与最高严重级别预估方便用户评估影响。更新公告Update在 6 月 12 日实际发布版本后公告顶部追加更新说明披露每个 CVE 的完整细节公告原文中以_(Update 12-June-2018)_标注原预告内容完整保留在文档末尾的**_Original post is included below_**部分并同步给出四个具体修复版本。这种先预告、后披露的机制与公告文档末尾所描述的一致发布的同时披露漏洞细节以便用户进行完整的影响评估impact assessment。修复版本总览四条发布线同日更新本次更新覆盖当时全部活跃发布线官方强烈建议所有用户尽快升级发布线修复版本发布线状态Node.js 10.x10.4.1CurrentNode.js 9.x9.11.2非 LTS 过渡版本Node.js 8.x8.11.3LTS CarbonNode.js 6.x6.14.3LTS Boron从仓库源码结构看LTS / Current / EOL 这些状态并非公告中的静态描述而是由 releaseData.mjs 依据发布计划schedule动态计算getNodeReleaseStatus会先判断是否已过 EOL 日期再依据最新版本是否标记为 LTS 来区分状态releaseData.mjs。这也意味着站在今天回看上述四条发布线都已按该逻辑被判定为 EOL。五个漏洞逐一拆解CVE-2018-7161HTTP/2 清理阶段的 Use-After-Free 导致进程崩溃严重级别HIGH攻击方式攻击者通过与 Node.js http2 服务进行特定交互触发原生代码native code中一个对象在不再可用之后仍被使用的清理缺陷use-after-free使服务进程崩溃实现拒绝服务。影响范围Node.js 8.xLTS Carbon、9.x、10.xCurrent全部版本均受影响6.xLTS Boron不受影响。修复方式更新 http2 实现。从 v8.11.3 发布帖的提交记录可以印证修复涉及http2: fixup http2stream cleanup and other nits——即修正 http2 stream 的清理逻辑避免在清理阶段访问已释放的对象。致谢该问题由 F5 Networks 的 Jordan Zebor 报告。CVE-2018-1000168nghttp2 依赖缺陷畸形 ALTSVC 帧触发未初始化读取严重级别HIGH攻击方式在特定条件下恶意客户端发送畸形的 ALTSVC 帧可触发一次未初始化读取uninitialized read进而导致段错误segfault使进程崩溃。影响范围Node.js 8.4.x 及以上LTS Carbon、全部 9.x、全部 10.xCurrent均受影响6.x 不受影响。修复方式升级底层 HTTP/2 库 nghttp2。四个受影响版本中v10.4.1、v9.11.2、v8.11.3 的发布帖均记录了deps: update to nghttp2 1.32.0提交即通过将 nghttp2 升级到 1.32.0 完成修复同时各版本均补加了对应的回归测试test: add regression test for nghttp2 CVE-2018-1000168。CVE-2018-7162TLS 握手期间的重复/意外消息导致进程崩溃严重级别HIGH攻击方式攻击者在 TLS 握手handshake过程中发送重复或意外的消息可导致提供 TLS 支持的 http 服务进程崩溃构成拒绝服务。影响范围全部 9.x、全部 10.xCurrent均受影响6.x 与 8.x 不受影响——这是五个漏洞中影响面最窄的一个。修复方式更新 TLS 实现。发布帖中的对应提交为tls: fix SSL write error handling修复 SSL 写入错误处理并配套test: add tls write error regression test回归测试。致谢同样由 F5 Networks 的 Jordan Zebor 报告并协助 Node.js 团队调查。CVE-2018-71649.7.0 引入的回归导致内存耗尽 DoS严重级别MEDIUM攻击方式该缺陷由 9.7.0 版本引入。当应用直接以流stream方式通过net.Socket对象从网络读取数据到 JavaScript 时内存消耗异常增大攻击者通过短时间连续发送微小数据块tiny chunks即可耗尽内存造成拒绝服务。影响范围Node.js 9.7.0 及以上、全部 10.xCurrent受影响6.x、8.x 不受影响。修复方式回退revert到先前的行为。发布帖中的对应提交为src: re-add \Realloc() shrink after reading stream data——即恢复读取流数据后对缓冲区执行Realloc()收缩shrink的逻辑并附带了对应测试test: add Realloc() shrink after reading stream data test。注意 9.11.2 与 10.4.1 均包含此修复而 8.11.3 也带有该项测试用于防止类似问题回归。CVE-2018-7167Buffer.fill() / Buffer.alloc() 参数不当导致挂起所有发布线级别分布最特殊攻击方式以特定参数调用Buffer.fill()或Buffer.alloc()会导致进程挂起hang从而可能被利用造成拒绝服务。公告给出了会触发挂起的完整用例Buffer.alloc(100).fill(Buffer.alloc(0)); Buffer.alloc(100).fill(Buffer.from()); Buffer.alloc(100).fill(new Uint8Array([])); Buffer.alloc(100, Buffer.alloc(0)); Buffer.alloc(100, new Uint8Array([])); new Buffer(10).fill(new Buffer());共同点是向填充/分配逻辑传入了一个零长度empty的缓冲区或 TypedArray旧实现会因此陷入等待而非正常完成。影响范围这是唯一一个 10.x 不受影响、而 6.x / 8.x / 9.x 全部受影响的漏洞。修复方式更新Buffer.alloc()与Buffer.fill()的实现在遇到上述无效输入时改为零填充zero fill而不是挂起。发布帖中的对应提交为src: avoid hanging on Buffer#fill 0-length input避免在 0 长度输入时挂起并同步更新了文档说明doc: buffer.fill() can zero-fill on invalid input。值得注意的是v6.14.3 是本次唯一只修复该漏洞的版本。各发布线修复内容精确对照综合公告与四个发布帖的 Notable Changes可以得到精确到每个版本的修复矩阵CVE漏洞模块6.14.3 (Boron)8.11.3 (Carbon)9.11.210.4.1 (Current)CVE-2018-7161HTTP/2 清理 use-after-free不适用✅✅✅CVE-2018-1000168nghttp2 ALTSVC 未初始化读取不适用✅✅✅CVE-2018-7162TLS 握手 DoS不适用不适用✅✅CVE-2018-7164net.Socket 流内存耗尽不适用不适用✅✅CVE-2018-7167Buffer.fill()/alloc() 挂起✅✅✅不适用该对照表与原始预告中的影响评估完全吻合6.x 修复 1 个漏洞严重级别 LOW、8.x 修复 3 个公告原文修正说明应为 3 个最高 HIGH、9.x 修复 5 个最高 HIGH、10.x 修复 4 个最高 HIGH。此外v10.4.1 发布帖还附带了两项非安全修复n-api 的napi_delete_async_workuse-after-free 预防、以及若干 V8 补丁。升级验证与实操建议升级路径根据上表确定自己所在发布线升级到对应的修复版本10.4.1 / 9.11.2 / 8.11.3 / 6.14.3。所有版本均提供 WindowsMSI 安装包与二进制、macOSpkg 安装包与二进制、Linux 多架构x64、x86、ppc64le、s390x、armv6l、armv7l、arm64、AIX、SmartOS 等平台的安装包与源码包并附带 PGP 签名的 SHASUMS 校验文件见各发布帖末尾。确认当前版本升级后通过node -v检查运行版本是否已命中修复版本号。优先级判断如果你的服务对外暴露了http2 或 TLS端口CVE-2018-7161 / 1000168 / 7162 属于可被远程触发的 HIGH 级风险应优先升级9.7.0 及以上用户需额外关注 CVE-2018-7164。事后验证可以在自己的环境里复现 CVE-2018-7167 的六段示例代码——在 6.x/8.x/9.x 旧版本上它们会挂起而在修复版本上会正常零填充返回这是最直观的升级前后行为差异。在本仓库中溯源这批公告nodejs.org 仓库将安全公告与版本发布信息分目录组织便于检索与交叉验证本公告原文位于 apps/site/pages/en/blog/vulnerability/该目录还收录了 2016–2026 年间全部安全公告如 june-2016-security-releases.md、december-2017-security-releases.md 等可以横向对比不同年份的安全响应节奏。四个修复版本发布帖位于 apps/site/pages/en/blog/release/ 目录其中 Notable Changes 与 Commits 是本文修复对照表的直接证据来源。公告文档的 frontmattercategory: vulnerability、layout: blog-post、author、date会被站点的博客数据生成逻辑见 apps/site/scripts/blog-data/generate.mjs消费最终渲染为博客列表与单篇文章页面。附原始公告核心要点回顾影响评估预告版6.x 存在 1 个 LOW 级 DoS8.x 存在 2 个 DoS后续修正为 3 个最高 HIGH9.x 存在 5 个 DoS最高 HIGH10.x 存在 4 个 DoS最高 HIGH。发布时机2018 年 6 月 12 日UTC前后发布修复版本并同步披露漏洞细节以支持完整影响评估。后续信息渠道官方安全政策、漏洞报告邮箱securitynodejs.org与低流量公告邮件列表 nodejs-sec 是当时获取后续安全动态的官方途径如今安全公告的归档与检索均可通过本仓库的 vulnerability 目录完成。对于正在评估历史 Node.js 版本风险、或希望理解 Node.js 安全发布机制的开发者而言这批公告的价值不仅在于 2018 年的那次修复本身更在于它展示了预告影响面 → 同日发布修复 → 公告与发布帖互相印证的完整披露范式——这一范式至今仍是 Node.js 安全生态的运作基础。【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

无显卡也能跑:Deep-Live-Cam 云端免费部署,一张照片实时换脸

无显卡也能跑:Deep-Live-Cam 云端免费部署,一张照片实时换脸

无显卡也能跑:Deep-Live-Cam 云端免费部署,一张照片实时换脸 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam Dee…

2026/9/19 13:15:56 阅读更多 →
人大线性代数习题册解析技术与教学应用

人大线性代数习题册解析技术与教学应用

简介:本资源是面向高校数学专业学生及理工科考研群体的《线性代数》配套习题解析资料,聚焦中国人民大学教材体系,系统解决课后习题无解、思路不清、验证困难等学习痛点。文件为单个PDF(5.13MB),完整覆盖行列…

2026/9/19 13:14:56 阅读更多 →
登录报错卡在 Claude Code?TaoToken 这样改 Base URL

登录报错卡在 Claude Code?TaoToken 这样改 Base URL

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 13:14:56 阅读更多 →

最新新闻

Coze零代码多智能体协作:从任务拆解到稳定运行的全流程实践

Coze零代码多智能体协作:从任务拆解到稳定运行的全流程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 15:05:44 阅读更多 →
Trae里Anaconda解释器,让Codex走TaoToken后能照着defaultInterpreterPath改对

Trae里Anaconda解释器,让Codex走TaoToken后能照着defaultInterpreterPath改对

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 15:05:44 阅读更多 →
Cursor 跑 MCP,模型通道改到 TaoToken 行不行?

Cursor 跑 MCP,模型通道改到 TaoToken 行不行?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 15:05:44 阅读更多 →
高铁接触网BIM全流程:建模深化施工校核指南

高铁接触网BIM全流程:建模深化施工校核指南

简介:这份PDF文档围绕BIM技术在高速铁路接触网工程中的应用展开,面向铁路电气化工程设计、施工及运维管理人员,针对传统二维CAD设计存在信息孤岛、碰撞难以发现、数据不连续等问题,提供了全生命周期的信息化解决思路。压缩包内共1…

2026/9/19 15:05:44 阅读更多 →
邮箱验证的正确姿势:从一行正则到分层校验的完整指南

邮箱验证的正确姿势:从一行正则到分层校验的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 15:05:44 阅读更多 →
Spring Boot CORS跨域配置与排错:前后端分离联调指南

Spring Boot CORS跨域配置与排错:前后端分离联调指南

简介:Spring Boot 开发者常遇到的跨域问题,在这份 PDF 文档中得到系统梳理,资源面向 Java Web 开发者和前后端分离项目维护人员,讲解 CORS 跨域资源共享机制及其在 Spring Boot 中的落地。文档按两条主线展开:一是自定…

2026/9/19 15:04:43 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →