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
Open-Source-Seal-Security — Corrige el paquete de código abierto que usa tough-cookie 2.5.0 - CVE-2023-26136, | Kitploit
Herramientas/GitHubGitHub/ronmadar/open-source-seal-security
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoSeguridad de Cadena de SuministroAprendizaje y Educación
GitHubronmadar/open-source-seal-security

Open-Source-Seal-Security

Corrige el paquete de código abierto que usa tough-cookie 2.5.0 - CVE-2023-26136,

Ver Repositorio

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
hace 2 añosAún no revisado

SEAL SECURITY PROJECT : Tarea de Ingeniero de Código Abierto

Crear una nueva versión del paquete tough-cookie V2.5.0, para corregir la vulnerabilidad crítica CVE-2023-26136, proyecto escrito en Node.js V20

Las versiones del paquete tough-cookie anteriores a la 4.1.3 son vulnerables a la contaminación de prototipos (Prototype Pollution) debido al manejo incorrecto de las cookies cuando se usa CookieJar en el modo rejectPublicSuffixes=false. Este problema surge de la forma en que se inicializan los objetos.

https://nvd.nist.gov/vuln/detail/CVE-2023-26136

La contaminación de prototipos es una vulnerabilidad que afecta a JavaScript. La contaminación de prototipos se refiere a la capacidad de inyectar propiedades en los prototipos de las construcciones existentes del lenguaje JavaScript, como los objetos. JavaScript permite que todos los atributos de Object sean alterados, incluidos sus atributos mágicos como proto, constructor y prototype. Un atacante manipula estos atributos para sobrescribir, o contaminar, el prototipo del objeto base de una aplicación JavaScript inyectando otros valores. Las propiedades de Object.prototype son entonces heredadas por todos los objetos JavaScript a través de la cadena de prototipos. Cuando esto ocurre, da lugar a una denegación de servicio al provocar excepciones de JavaScript, o a la manipulación del código fuente de la aplicación para forzar la ruta de código que inyecta el atacante, lo que conduce a la ejecución remota de código.

Hay dos formas principales en las que ocurre la contaminación de prototipos:

  • Fusión recursiva insegura de objetos (Unsafe Object recursive merge)
  • Definición de propiedades por ruta (Property definition by path)

nota importante: https://github.com/salesforce/tough-cookie/issues/282 https://security.snyk.io/package/npm/tough-cookie/2.5.0

=> Para corregir la vulnerabilidad en la clase MemoryCookieStore, necesitas modificar el método putCookie para prevenir la contaminación de prototipos cuando cookie.domain esté establecido en proto.

https://github.com/salesforce/tough-cookie/pull/283

a. Cambiar tough_cookie_2.5.0\node_modules\tough-cookie\lib\memstore.js

Todas las apariciones de creación de nuevos objetos en memstore.js se han cambiado de {} Object.create(Object.prototype) a Object.create(null) de modo que estamos usando instancias de objetos que no tienen una propiedad de prototipo que pueda ser contaminada.

  • Ejemplo : console.log(a = Object.create(null)); en el objeto a - Sin propiedades (o __ proto __)

b. Se creó un nuevo archivo, /node_modules/tough-cookie/lib/test-unit.js úsalo en vanillajs; se encuentra en la carpeta tests, archivo cookie_jar_test.js "Issue #282 - Contaminación de prototipos"

Comando: node test-unit.js

c. Se creó un nuevo archivo, /node_modules/tough-cookie/lib/testVerifyVulnerable.js verifica que el comportamiento vulnerable fue corregido.

Comando: node testVerifyVulnerable.js

  1. change.diff : https://github.com/ronmadar/Open-Source-Seal-Security/blob/cf768f1932f087c30ebec7fe60c3fca323b4e54b/change.diff

a. Paquete normal tough-cookie V 2.5.0

Comando: npm install [email protected] && node index.js

b. Paquete comprimido tough-cookie V 2.5.0 en formato tgz con los cambios

Comando: npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

c.

  • Vulnerabilidad: la vulnerabilidad surge al modificar directamente Object. prototype añadiendo una nueva propiedad newProperty. Esto significa que todos los objetos del entorno JavaScript heredarán esta propiedad, alterando potencialmente su comportamiento de forma involuntaria.

Daño potencial -

  • Contaminación de prototipos: Al añadir propiedades directamente a Object. prototype, existe el riesgo de contaminar toda la cadena de prototipos. Esto puede provocar comportamientos inesperados en toda la aplicación, ya que cualquier objeto que recorra la cadena de prototipos puede verse afectado.

  • Riesgos de seguridad: En el contexto de una aplicación web, la contaminación de prototipos puede ser explotada por atacantes para manipular objetos y propiedades, lo que puede conducir a vulnerabilidades de seguridad como la escalada de privilegios y la fuga de información.

  • Problemas de compatibilidad: Modificar prototipos centrales como Object. prototype puede introducir problemas de compatibilidad con otras bibliotecas o marcos de trabajo que dependen del comportamiento estándar. Esto puede causar errores o comportamientos inesperados al integrar o actualizar dependencias. d. escrito anteriormente.

  1. Un enlace a tu repositorio bifurcado (fork) de tough-cookie 2.5.0 en GitHub https://github.com/ronmadar/tough-cookie

Cómo instalar este proyecto

  1. clona este proyecto
Descargar herramienta