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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-21717 — CVE-2026-21717 的概念验证,这是一个 Node.js V8 字符串哈希碰撞漏洞,可通过特制的 JSON 载荷引发拒绝服务。 | Kitploit
工具/GitHubGitHub/open-flaw/cve-2026-21717
漏洞分析漏洞利用学习与教育
GitHubopen-flaw/cve-2026-21717

CVE-2026-21717

CVE-2026-21717 的概念验证,这是一个 Node.js V8 字符串哈希碰撞漏洞,可通过特制的 JSON 载荷引发拒绝服务。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-21717

Node.js V8 字符串哈希可预测碰撞漏洞导致拒绝服务

概述

V8 字符串哈希机制中的一个严重漏洞允许攻击者对 Node.js 应用程序造成严重的性能下降。整数字符串会被哈希为其数值,使得哈希碰撞极易被预测。通过构造恶意输入,在 V8 内部字符串表中引发大量碰撞,攻击者可以显著降低性能或造成拒绝服务。

漏洞详情

  • CVE ID:CVE-2026-21717
  • 严重性:高
  • 攻击向量:网络
  • 攻击复杂度:低
  • 影响:拒绝服务(DoS)

技术描述

该漏洞源于 V8 的字符串驻留(internalization)过程。当进行 JSON 解析时,短字符串会被自动驻留到哈希表中。整数字符串因其哈希值为其数值而可预测地发生碰撞,使攻击者能够强制产生二次探测链,从而严重降低性能。

受影响组件

最常见的触发点是任何对攻击者可控输入调用 JSON.parse() 的端点,因为 JSON 解析会自动将短字符串驻留到受影响的哈希表中。

概念验证

本仓库包含一个演示该漏洞的概念验证:

前提条件

root@kitploit:~
# 使用受 CVE-2026-21717 影响的 Node.js 版本
nvm use
npm install

运行 PoC

root@kitploit:~
node poc.js

预期行为

PoC 会创建一个包含以下内容的载荷:

  • 约 13 万个字符串组成的二次探测链
  • 重复的目标值强制沿链进行查找
  • 单次 JSON.parse() 操作导致约 44 秒以上的 CPU 时间消耗

攻击流程

  1. 攻击者 构造一个包含整数字符串的对抗性 JSON 载荷,旨在引发碰撞
  2. 客户端 将恶意 JSON 发送到服务器
  3. 服务器 对不可信输入调用 JSON.parse()
  4. V8 引擎 将字符串驻留到哈希表中,触发碰撞
  5. 结果 极端的 CPU 消耗和性能下降

缓解措施

建议操作

  1. 更新 Node.js 至已修复该漏洞的补丁版本
  2. 输入验证:限制 JSON 载荷的大小和复杂度
  3. 速率限制:在接受 JSON 输入的端点上实施速率限制
  4. 超时设置:为 JSON 解析操作设置合理的超时时间
  5. 资源监控:监控 CPU 使用率以发现异常峰值

代码级缓解措施

root@kitploit:~
// 限制载荷大小
app.use(express.json({ limit: '100kb' }));

// 为解析添加超时
const parseWithTimeout = (str, timeout = 1000) => {
  return Promise.race([
    Promise.resolve(JSON.parse(str)),
    new Promise((_, reject) => 
      setTimeout(() => reject(new Error('Parse timeout')), timeout)
    )
  ]);
};

参考

  • CVE 详情
  • Node.js 安全博客

免责声明

本仓库仅供教育和研究目的使用。请勿将此代码用于恶意用途,或针对您不拥有或未经明确许可测试的系统。

下载工具