Skip to main content

Las vulnerabilidades más comunes en Maven Central y npm

Escrito por
The Most Common Vulnerabilities in Maven Central and npm small

27 de junio de 2018

0 minutos de lectura

La versión completa de esta entrada del blog se publicó originalmente como una publicación de invitado de Snyk en el blog de Cloud Foundry.

En esta publicación veremos los tipos de vulnerabilidades más comunes en dos de los principales ecosistemas que seguimos en nuestra base de datos de vulnerabilidades: Maven Central y npm. La Snyk Vulnerability Database incluye vulnerabilidades de más de 1,000,000 de paquetes de código abierto que seguimos y que usan Composer, Go, Maven Central, npm, NuGet, pip y Rubygems.

En 2017, la cantidad de vulnerabilidades publicadas en los ecosistemas que seguimos alcanzó un máximo histórico, con un aumento del 83 por ciento con respecto a 2016. Podemos ver cuáles fueron los tipos de vulnerabilidad más frecuentes en los dos ecosistemas principales, de los que hablaremos aquí.

Gráfico de líneas titulado «Vulnerabilidades críticas en paquetes de Java y Node», que muestra que las vulnerabilidades de Java aumentan hasta aproximadamente 88 y las de Node hasta alrededor de 29 en 2017.

En nuestras publicaciones de abril y mayo analizaremos algunas de estas vulnerabilidades en mayor profundidad para ver cómo pueden explotarse.

JavaScript (npm)

1. Recorrido de directorios – Ejemplo: el paquete st.

La vulnerabilidad más común en el ecosistema de npm es el recorrido de directorios. Suele ocurrir cuando se proporciona una ruta relativa a un directorio, pero no se valida. Sin validación, la ruta relativa puede apuntar a un directorio principal y permitir el acceso a datos confidenciales. Por ejemplo, una técnica que se usa con frecuencia para ejecutar un exploit consiste en usar entidades HTML, donde «.» se representa como «%2E». En estos casos, una solicitud a la siguiente URL /%2E%2E/%2E%2E/%2E%2E/etc/password podría hacer que se exponga /etc/passwd.

2. Recursos descargados mediante un protocolo no seguro – Ejemplo: Chromedriver.

Esta vulnerabilidad permite que los atacantes realicen un ataque de intermediario (MitM). Cuando los recursos se descargan mediante un protocolo no seguro, un atacante puede interceptar la conexión y modificar los paquetes recibidos.

3. Secuencias de comandos entre sitios (XSS) – Ejemplo: el paquete handlebars.

Los ataques XSS ocurren cuando un atacante engaña al navegador de un usuario para que ejecute código JavaScript malicioso en el entorno de la víctima. Estos scripts pueden robar las cookies de sesión del usuario para el dominio, obtener contraseñas o números de tarjetas de crédito escritos, extraer o modificar contenido y realizar o modificar acciones en nombre del usuario. De otro modo, el navegador normalmente bloquearía estas acciones mediante su política del mismo origen. Para obtener más información, consulta Ataques XSS: la próxima ola.

Maven Central

1. Denegación de servicio (DoS) – Ejemplo: el procesador de datos jackson.

Una vulnerabilidad de denegación de servicio satura los recursos de los servidores de backend y afecta otras solicitudes de los usuarios. Esto suele ocurrir por el consumo de CPU, pero también puede deberse a que se llenen los discos, la memoria u otros recursos del servidor.

2. Ejecución de código arbitrario – Ejemplo: la biblioteca Apache Struts.

La ejecución de código arbitrario consiste en ejecutar código malicioso enviado a un servidor vulnerable. A menudo, este código ejecuta comandos en la máquina remota. Suele ser consecuencia de otra vulnerabilidad, como una vulnerabilidad de deserialización, como ocurrió en el caso de Struts.

3. Secuencias de comandos entre sitios (XSS) – Ejemplo: el complemento Jenkins CI Server.

Consulta la descripción de XSS en la sección de npm de arriba.

Para conocer otras vulnerabilidades comunes en estos ecosistemas, consulta la publicación completa en el blog de Cloud Foundry.

Empieza con los desafíos de Capture the Flag

Aprende a resolver desafíos de captura la bandera con nuestro taller virtual introductorio a pedido.

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.

illustration hero ai
Blog

El huracán de la IA ha llegado

La IA está acelerando por igual la creación de software y los ciberataques. Los líderes deben proteger los agentes y el código desde el inicio, aplicar controles en tiempo de ejecución y validar las defensas de forma independiente.

Live Stream

Agentes de remediación, sin misterios: por qué solucionar es mejor que encontrar

Descubre cómo el agente de remediación de Snyk utiliza inteligencia de seguridad, análisis de explotabilidad y validación para convertir las vulnerabilidades en solicitudes de incorporación de cambios listas para fusionarse.