Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-21710 — CVE-2026-21710 的概念验证漏洞利用程序,该漏洞是 Node.js HTTP 请求处理中的一个缺陷,通过 `__proto__` 头触发未捕获的 TypeError,从而导致拒绝服务。 | Kitploit
工具/GitHubGitHub/open-flaw/cve-2026-21710
漏洞分析漏洞利用Web应用程序漏洞利用
GitHubopen-flaw/cve-2026-21710

CVE-2026-21710

CVE-2026-21710 的概念验证漏洞利用程序,该漏洞是 Node.js HTTP 请求处理中的一个缺陷,通过 `__proto__` 头触发未捕获的 TypeError,从而导致拒绝服务。

查看仓库
25个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-21710 — Node.js req.headersDistinct 拒绝服务(DoS)

摘要

字段值
CVE IDCVE-2026-21710
发布时间2026-03-30
CVSS v3.17.5 高危(AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
CWECWE-770 — 无限制或无节流地分配资源
受影响版本Node.js 20.x、22.x、24.x、25.x
修复版本2026年3月安全发布

描述

Node.js HTTP 请求处理中存在一个缺陷:当收到的请求包含名为 __proto__ 的请求头,且应用程序访问 req.headersDistinct 时,会抛出未捕获的 TypeError。

dest["__proto__"] 解析为 Object.prototype 而非 undefined,导致在非数组对象上调用 .push()。该异常在属性 getter 内部同步抛出,无法被 error 事件监听器拦截——除非对每次 req.headersDistinct 访问都包裹 try/catch,否则无法处理。

根本原因

headersDistinct getter 将请求头值累积到一个普通对象中:

root@kitploit:~
const dest = {};
// ...
dest[name] = dest[name] || [];
dest[name].push(value);

当 name === "__proto__" 时:

  • dest["__proto__"] 返回 Object.prototype(真值,而非 undefined)
  • || [] 初始化被跳过
  • 在 Object.prototype 上调用 .push(value) → TypeError: dest[name].push is not a function
  • 同步抛出的异常绕过事件循环错误边界,导致进程崩溃

文件

文件描述
server.js存在漏洞的 HTTP 服务器(直接访问 req.headersDistinct)
poc.js概念验证(PoC)漏洞利用

使用方法

仅限授权的安全研究 / 负责任披露使用。

启动存在漏洞的服务器

root@kitploit:~
node server.js
# Listening on http://127.0.0.1:3000

运行 POC

root@kitploit:~
node poc.js

预期输出:

  1. 步骤 1 — 正常请求成功(HTTP 200)。
  2. 步骤 2 — 发送 __proto__ 请求头;服务器因未捕获的 TypeError 崩溃。
  3. 步骤 3 — 后续请求收到连接错误,确认崩溃发生。

参考

  • NVD — CVE-2026-21710
  • Node.js 2026年3月安全发布
下载工具