Skip to main content

Contaminación de prototipos en express-fileupload

Escrito por
Blog illustrations vul profile feature

24 de agosto de 2020

0 minutos de lectura

Te damos la bienvenida a Snyk Monthly Vulnerability Profile. En esta serie, Snyk repasa las vulnerabilidades descubiertas por nuestro equipo de investigación de seguridad o reportadas a este. Cada mes elegimos una vulnerabilidad destacada del mes anterior y contamos la historia detrás de su descubrimiento, investigación y divulgación. Destacamos a los investigadores, desarrolladores y usuarios que ayudan a identificar y corregir vulnerabilidades en la comunidad de código abierto.

Este mes analizamos una vulnerabilidad de contaminación de prototipos descubierta en express-fileupload.


Vulnerabilidad: contaminación de prototipos en express-fileupload

CVE asignados: CVE-2020-7699

Analista de Snyk: Sam Sanoop

Descubierta por: un investigador que usa el seudónimo po6ix

Hace poco se descubrió una vulnerabilidad de contaminación de prototipos en el popular paquete express-fileupload, que se registró como un problema en el repositorio de GitHub.

La función de problemas puede ser una forma práctica para que los desarrolladores y los investigadores de seguridad notifiquen a los mantenedores de paquetes sobre errores o vulnerabilidades de seguridad que hayan encontrado. Sin embargo, aunque esta información es pública, no se difunde ampliamente entre las comunidades de seguridad y desarrollo que necesitan conocer el problema.

Entonces, ¿cómo podemos asegurarnos de que las vulnerabilidades graves de seguridad registradas como problemas en el repositorio se comuniquen de forma más amplia? Esta historia sobre la contaminación de prototipos en express-fileupload demuestra cómo el equipo de investigación de Snyk ayuda a abordar este desafío.

Un análisis detallado de la vulnerabilidad de contaminación de prototipos

El 25 de julio de 2020, un investigador que usa el seudónimo po6ix registró un problema en el repositorio de GitHub del paquete express-fileupload. En el problema se describe una vulnerabilidad de contaminación de prototipos que el investigador descubrió en el paquete. También se muestra cómo se podría aprovechar la vulnerabilidad para lograr la ejecución remota de código mediante una función diseñada para analizar información de rutas de archivos. Además, el investigador publicó en su sitio web una entrada de blog que detalla la vulnerabilidad e incluye demostraciones de prueba de concepto (POC).

Editor de código con tema oscuro que muestra una función processNested de JavaScript que procesa recursivamente claves de objetos anidados.

El equipo de investigación de seguridad de Snyk busca con regularidad problemas en repositorios públicos de GitHub que describan posibles fallas de seguridad. El equipo prestó atención a una serie de problemas que po6ix había registrado en muy poco tiempo, entre ellos la vulnerabilidad del paquete express-fileupload. Sam Sanoop, analista de seguridad de Snyk, se comunicó con po6ix para obtener más información sobre la vulnerabilidad y ofrecer la ayuda de Snyk para asignar CVE a las múltiples vulnerabilidades que había descubierto.

Después de conversar con po6ix sobre las vulnerabilidades, Sam tomó las pruebas de concepto incluidas en la entrada del blog y las usó para recrear los ataques. De esta manera, Snyk pudo confirmar el alcance y la posibilidad de aprovechar la vulnerabilidad.

Tras confirmar los detalles de la vulnerabilidad, Sam le asignó una puntuación CVSS de 7.5, en parte debido a la naturaleza remota de los ataques. Según la entrada de blog de po6ix, a fines de julio de 2020, el paquete express-fileupload tenía casi 8 millones de descargas. La combinación de la gravedad de la vulnerabilidad y la popularidad del paquete vulnerable hizo que este descubrimiento fuera especialmente preocupante.

Sam asignó CVE-2020-7699 a la vulnerabilidad y creó un informe detallado, que agregó a Snyk Vulnerability Database. También se reconoce debidamente al investigador original, po6ix, como responsable del descubrimiento en la base de datos de vulnerabilidades de Snyk.

Fragmento de código que muestra una función de combinación que copia propiedades de un objeto de origen a un objeto de destino.

Mientras tanto, el mantenedor del paquete implementó una corrección para la vulnerabilidad de seguridad en la versión 1.1.8. Sin embargo, el problema no se corrigió por completo y otro usuario de GitHub abrió un problema de seguimiento. En este, señaló que el paquete aún tenía una vulnerabilidad de denegación de servicio que aprovechaba elementos del mismo ataque. El 6 de agosto de 2020, el mantenedor publicó la versión 1.1.10 del paquete, que Snyk confirmó que corrige la vulnerabilidad.

Esta historia es solo un ejemplo de cómo el equipo de investigación de Snyk colabora con las comunidades de desarrollo y seguridad. Nuestro objetivo no es solo asegurarnos de que se corrijan las vulnerabilidades en los paquetes, sino también promover la comunicación abierta sobre la información de vulnerabilidades para que todos puedan proteger su software con mayor facilidad.

¿Te perdiste nuestras publicaciones anteriores de MVP? Revísalas a continuación:

Leer más

blog feature snyk container custom base recommendations
Blog

Presentamos Evo Agentic AppSec: seguridad al ritmo del desarrollo con IA

El desarrollo impulsado por IA supera el ritmo de los flujos de trabajo de seguridad tradicionales. Agentic AppSec de Snyk usa agentes de seguridad para encontrar, corregir y verificar vulnerabilidades de forma continua, mientras las personas definen el estándar.

Blog

Los modelos de frontera encontraron las vulnerabilidades. Solo el atacante encontró las cadenas.

El análisis estático encontró las fallas, pero solo las pruebas de ataque en vivo demostraron cómo podían encadenarse para provocar brechas. Una comparación de Evo COS, Claude Security y Claude Code Security.

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.