Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-21717 — Proof-of-concept for CVE-2026-21717, a Node.js V8 string hashing collision vulnerability causing denial of service via crafted JSON payloads. | Kitploit
Tools/GitHubGitHub/open-flaw/cve-2026-21717
Vulnerability AnalysisExploitationLearning & Education
GitHubopen-flaw/cve-2026-21717

CVE-2026-21717

Proof-of-concept for CVE-2026-21717, a Node.js V8 string hashing collision vulnerability causing denial of service via crafted JSON payloads.

View Repository
4 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-21717

Node.js V8 String Hashing Predictable Collision Vulnerability Leading to Denial of Service

Overview

A critical vulnerability in V8's string hashing mechanism allows attackers to cause severe performance degradation in Node.js applications. Integer-like strings are hashed to their numeric value, making hash collisions trivially predictable. By crafting malicious input that causes many collisions in V8's internal string table, an attacker can significantly degrade performance or cause a denial of service.

Vulnerability Details

  • CVE ID: CVE-2026-21717
  • Severity: High
  • Attack Vector: Network
  • Attack Complexity: Low
  • Impact: Denial of Service (DoS)

Technical Description

The vulnerability stems from V8's string internalization process. When JSON parsing occurs, short strings are automatically internalized into a hash table. Integer-like strings collide predictably because they hash to their numeric values, allowing attackers to force quadratic probing chains that severely degrade performance.

Affected Components

The most common trigger is any endpoint that calls JSON.parse() on attacker-controlled input, as JSON parsing automatically internalizes short strings into the affected hash table.

Proof of Concept

This repository contains a proof-of-concept demonstrating the vulnerability:

Prerequisites

root@kitploit:~
# Use Node.js version affected by CVE-2026-21717
nvm use
npm install

Running the PoC

root@kitploit:~
node poc.js

Expected Behavior

The PoC creates a payload with:

  • A quadratic probing chain of ~130k strings
  • Repeated target values forcing lookups through the chain
  • Results in ~44+ seconds of CPU time for a single JSON.parse() operation

Attack Flow

  1. Attacker crafts an adversarial JSON payload containing integer-like strings designed to collide
  2. Client sends the malicious JSON to the server
  3. Server calls JSON.parse() on the untrusted input
  4. V8 Engine internalizes strings into hash table, triggering collisions
  5. Result Extreme CPU consumption and performance degradation

Mitigation

Recommended Actions

  1. Update Node.js to a patched version that addresses this vulnerability
  2. Input Validation: Limit the size and complexity of JSON payloads
  3. Rate Limiting: Implement rate limiting on endpoints accepting JSON input
  4. Timeouts: Set reasonable timeouts for JSON parsing operations
  5. Resource Monitoring: Monitor CPU usage for abnormal spikes

Code-Level Mitigations

root@kitploit:~
// Limit payload size
app.use(express.json({ limit: '100kb' }));

// Add timeout for parsing
const parseWithTimeout = (str, timeout = 1000) => {
  return Promise.race([
    Promise.resolve(JSON.parse(str)),
    new Promise((_, reject) => 
      setTimeout(() => reject(new Error('Parse timeout')), timeout)
    )
  ]);
};

References

  • CVE Details
  • Node.js Security Blog

Disclaimer

This repository is for educational and research purposes only. Do not use this code for malicious purposes or against systems you do not own or have explicit permission to test.

Download Tool