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
Tough-Cookie-v2.5.0-Patched — tough-cookie v2.5.0 parcheado que corrige la vulnerabilidad de contaminación de prototipos CVE-2023-26136 con Object.create(null) en MemoryCookieStore, incluyendo demostración del exploit y pruebas unitarias. | Kitploit
Herramientas/GitHubGitHub/dani33339/tough-cookie-v2.5.0-patched
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónSeguridad WebAprendizaje y Educación
GitHubdani33339/tough-cookie-v2.5.0-patched

Tough-Cookie-v2.5.0-Patched

tough-cookie v2.5.0 parcheado que corrige la vulnerabilidad de contaminación de prototipos CVE-2023-26136 con Object.create(null) en MemoryCookieStore, incluyendo demostración del exploit y pruebas unitarias.

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 →
Ver Repositorio
5hace 1 añoAún no revisado
Compartir

Tough-Cookie v2.5.0 Parcheado - Corrección de Contaminación de Prototipos

Resumen

Este repositorio contiene una versión parcheada del paquete tough-cookie, versión 2.5.0, para abordar la vulnerabilidad crítica de Contaminación de Prototipos (CVE-2023-26136). La vulnerabilidad permite a atacantes manipular la cadena de prototipos inyectando propiedades en objetos JavaScript. Esto puede dar lugar a comportamientos inesperados, riesgos de seguridad como ejecución remota de código y problemas de compatibilidad en aplicaciones que dependen de este paquete.

Descripción de la Vulnerabilidad

Las versiones del paquete tough-cookie anteriores a la v4.1.3 son vulnerables a la Contaminación de Prototipos cuando se usa CookieJar con el modo rejectPublicSuffixes=false. La vulnerabilidad surge del manejo inadecuado de cookies, específicamente cuando cookie.domain se establece como . Esto permite a los atacantes modificar el objeto base , causando potencialmente problemas generalizados en toda la aplicación.

__proto__
Object.prototype

Para más detalles sobre el CVE-2023-26136, consulta:

  • NVD - CVE-2023-26136
  • Snyk - CVE-2023-26136 en Tough-Cookie
  • GitHub - Issue #282

Riesgos Potenciales de la Contaminación de Prototipos

La contaminación de prototipos puede introducir varios riesgos críticos, incluyendo:

  • Vulnerabilidades de Seguridad: Al modificar el Object.prototype base, los atacantes pueden manipular el comportamiento de los objetos, potencialmente escalando privilegios, accediendo a datos sensibles o eludiendo mecanismos de seguridad en la aplicación.

  • Denegación de Servicio (DoS): Contaminar la cadena de prototipos puede causar comportamientos inesperados en el sistema, provocando fallos, bucles infinitos o agotamiento de recursos, haciendo que la aplicación no esté disponible para usuarios legítimos.

  • Problemas de Compatibilidad: Cambiar el Object.prototype puede causar errores y comportamientos inesperados al interactuar con otras librerías o frameworks. Las dependencias que se basan en cadenas de prototipos pueden romperse, llevando a problemas de integración o comportamiento defectuoso de la aplicación durante las actualizaciones.

  • Comportamiento Inesperado de la Aplicación: La contaminación de prototipos puede provocar un comportamiento errático del programa, incluyendo corrupción de datos, brechas de seguridad y potencialmente exponer la aplicación a más explotaciones.

Correcciones Clave

El parche implica modificar la clase MemoryCookieStore, específicamente el método putCookie, para prevenir la contaminación de prototipos creando objetos sin prototipo. Los cambios clave incluyen:

  1. Usar Object.create(null) en lugar de {} para crear objetos sin prototipo.
  2. Corregir la vulnerabilidad donde las cookies podían establecerse con cookie.domain = __proto__.
  3. Añadir pruebas para verificar que la vulnerabilidad se ha abordado adecuadamente.

Instalación de la Versión Parcheada

Para instalar la versión parcheada de tough-cookie, usa el siguiente comando:

root@kitploit:~
npm install ./tough-cookie-2.5.0-PATCHED.tgz

Prueba de la Corrección

Este repositorio incluye una prueba unitaria diseñada para verificar que la vulnerabilidad de contaminación de prototipos se ha solucionado exitosamente.

La prueba, llamada prototype_pollution_test, verifica específicamente que establecer cookies con un dominio de __proto__ ya no afecta la cadena de prototipos de JavaScript. Esto asegura que se previene la contaminación de prototipos, manteniendo la integridad de la aplicación.

Para ejecutar las pruebas y confirmar la corrección, ejecuta el siguiente comando:

root@kitploit:~
npm test

Demostración del Exploit

Para demostrar el exploit tanto en la versión original como en la parcheada, sigue los pasos a continuación:

Versión Vulnerable Original

Instala la versión vulnerable de tough-cookie:

root@kitploit:~
npm install [email protected] && node index.js

Salida Esperada:

root@kitploit:~
Polluted object: {
  Slonser: Cookie="Slonser=polluted; Domain=__proto__; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms",
  Auth: Cookie="Auth=Lol; Domain=google.com; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms"
} EXPLOITED SUCCESSFULLY

Esto indica que el prototipo de un objeto ha sido contaminado, confirmando que la vulnerabilidad está presente en la versión original.

Versión Parcheada

root@kitploit:~
 npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

Salida Esperada:

root@kitploit:~
EXPLOIT FAILED

Esto muestra que el exploit ha sido bloqueado exitosamente, confirmando que la vulnerabilidad de contaminación de prototipos ha sido corregida.

Enfoque y Pasos Tomados

El proceso para abordar la vulnerabilidad de Contaminación de Prototipos en tough-cookie v2.5.0 implicó varios pasos metódicos para asegurar que la corrección fuera completa y efectiva. A continuación se presenta una visión general del enfoque que seguí:

1. Entender la Vulnerabilidad

Comencé investigando la Contaminación de Prototipos (CVE-2023-26136) para entender su impacto. La vulnerabilidad permite a los atacantes inyectar propiedades en la cadena de prototipos a través de la propiedad cookie.domain, potencialmente causando riesgos de seguridad como ejecución remota de código.

2. Investigar Correcciones Existentes

Exploré issues y discusiones de GitHub sobre la vulnerabilidad, incluyendo la corrección en tough-cookie v4.1.3, que usa Object.create(null) para prevenir la contaminación de prototipos. Esto me ayudó a identificar los cambios necesarios para corregir v2.5.0.

3. Analizar Versiones Vulnerable y Parcheada

Comparé v2.5.0 con v4.1.3 para entender las diferencias y señalar los cambios necesarios. La modificación clave implicó usar objetos sin prototipo para prevenir la explotación.

4. Implementar la Solución

Actualicé la clase MemoryCookieStore para usar Object.create(null) en lugar de {}, asegurando que no haya contaminación de prototipos.

5. Probar la Solución

Escribí pruebas unitarias para verificar la corrección y creé un script de demostración del exploit (index.js) para mostrar cómo se previene la vulnerabilidad en la versión parcheada.

6. Documentar la Corrección

Finalmente, documenté la corrección, incluyendo instrucciones de instalación y prueba, y empaqueté la versión parcheada (tough-cookie-2.5.0-PATCHED.tgz) para fácil distribución.

Resumen de Cambios

Archivos Añadidos/Editados desde v2.5.0

  • index.js: Script principal para demostrar la vulnerabilidad y la corrección.
  • lib/memstore.js: La clase MemoryCookieStore modificada para prevenir la contaminación de prototipos.
  • test/ietf_data/parser.json: Actualizado para corregir fechas obsoletas en los datos de prueba.
  • test/prototype_pollution_test.js: Pruebas unitarias para verificar que la contaminación de prototipos está corregida.
  • tough-cookie-2.5.0-PATCHED.tgz: La versión parcheada del paquete tough-cookie.
Descargar herramienta