Contaminación de prototipos en express-fileupload
24 de agosto de 2020
0 minutos de lecturaTe 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).

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.

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:



