Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-21717 — Prueba de concepto para CVE-2026-21717, una vulnerabilidad de colisión de hash de cadenas en V8 de Node.js que provoca denegación de servicio mediante cargas útiles JSON manipuladas. | Kitploit
Herramientas/GitHubGitHub/open-flaw/cve-2026-21717
Análisis de VulnerabilidadesExplotaciónAprendizaje y Educación
GitHubopen-flaw/cve-2026-21717

CVE-2026-21717

Prueba de concepto para CVE-2026-21717, una vulnerabilidad de colisión de hash de cadenas en V8 de Node.js que provoca denegación de servicio mediante cargas útiles JSON manipuladas.

Ver Repositorio
hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-21717

Vulnerabilidad de colisión predecible en el hash de cadenas de V8 en Node.js que provoca denegación de servicio

Resumen

Una vulnerabilidad crítica en el mecanismo de hash de cadenas de V8 permite a los atacantes causar una degradación severa del rendimiento en aplicaciones Node.js. Las cadenas similares a enteros se convierten en hash según su valor numérico, lo que hace que las colisiones de hash sean trivialmente predecibles. Al elaborar una entrada maliciosa que provoque muchas colisiones en la tabla interna de cadenas de V8, un atacante puede degradar significativamente el rendimiento o causar una denegación de servicio.

Detalles de la vulnerabilidad

  • ID de CVE: CVE-2026-21717
  • Gravedad: Alta
  • Vector de ataque: Red
  • Complejidad del ataque: Baja
  • Impacto: Denegación de servicio (DoS)

Descripción técnica

La vulnerabilidad se origina en el proceso de internalización de cadenas de V8. Cuando se realiza el análisis JSON, las cadenas cortas se internalizan automáticamente en una tabla hash. Las cadenas similares a enteros colisionan de forma predecible porque se convierten en hash según su valor numérico, lo que permite a los atacantes forzar cadenas de sondeo cuadrático que degradan severamente el rendimiento.

Componentes afectados

El desencadenante más común es cualquier endpoint que llame a JSON.parse() sobre entrada controlada por el atacante, ya que el análisis JSON internaliza automáticamente las cadenas cortas en la tabla hash afectada.

Prueba de concepto

Este repositorio contiene una prueba de concepto que demuestra la vulnerabilidad:

Requisitos previos

root@kitploit:~
# Use una versión de Node.js afectada por CVE-2026-21717
nvm use
npm install

Ejecución del PoC

root@kitploit:~
node poc.js

Comportamiento esperado

El PoC crea una carga útil con:

  • Una cadena de sondeo cuadrático de ~130k cadenas
  • Valores objetivo repetidos que fuerzan búsquedas a través de la cadena
  • Resulta en ~44+ segundos de tiempo de CPU para una sola operación JSON.parse()

Flujo del ataque

  1. Atacante elabora una carga útil JSON adversaria que contiene cadenas similares a enteros diseñadas para colisionar
  2. Cliente envía el JSON malicioso al servidor
  3. Servidor llama a JSON.parse() sobre la entrada no confiable
  4. Motor V8 internaliza las cadenas en la tabla hash, desencadenando colisiones
  5. Resultado Consumo extremo de CPU y degradación del rendimiento

Mitigación

Acciones recomendadas

  1. Actualice Node.js a una versión parcheada que aborde esta vulnerabilidad
  2. Validación de entrada: Limite el tamaño y la complejidad de las cargas útiles JSON
  3. Limitación de velocidad: Implemente limitación de velocidad en los endpoints que aceptan entrada JSON
  4. Tiempos de espera: Establezca tiempos de espera razonables para las operaciones de análisis JSON
  5. Monitoreo de recursos: Supervise el uso de CPU para detectar picos anormales

Mitigaciones a nivel de código

root@kitploit:~
// Limitar el tamaño de la carga útil
app.use(express.json({ limit: '100kb' }));

// Agregar tiempo de espera para el análisis
const parseWithTimeout = (str, timeout = 1000) => {
  return Promise.race([
    Promise.resolve(JSON.parse(str)),
    new Promise((_, reject) => 
      setTimeout(() => reject(new Error('Parse timeout')), timeout)
    )
  ]);
};

Referencias

  • Detalles de CVE
  • Blog de seguridad de Node.js

Aviso legal

Este repositorio es solo para fines educativos y de investigación. No utilice este código con fines maliciosos ni contra sistemas que no posea o para los cuales no tenga permiso explícito de prueba.

Descargar herramienta