Vulnerabilidad Crítica en Isolated-vm

Recientes investigaciones han revelado una vulnerabilidad crítica en Isolated-vm, una conocida biblioteca de código abierto utilizada para ejecutar JavaScript no confiable dentro de un entorno aislado. Esta biblioteca cuenta con más de 2,900 estrellas y 190 bifurcaciones en GitHub y se ha descargado casi un millón de veces en la última semana.

La vulnerabilidad, identificada como GHSA-864f-rcv7-6rh4, afecta a todas las versiones de la biblioteca hasta la 7.0.0, aunque se ha corregido en las versiones 6.2.0 y 7.0.1, lanzadas recientemente. Isolated-vm utiliza instancias independientes del motor de JavaScript V8 de Google para permitir que múltiples entornos de JavaScript se ejecuten simultáneamente sin compartir datos ni interferir entre sí.

Detalles de la Vulnerabilidad

La falla, detectada por investigadores de Endor Labs, reside en la clase ExternalCopy, que se utiliza para serializar objetos de JavaScript desde el entorno host y deserializarlos en el entorno invitado. Según Cristian-Alexandru Staicu, uno de los investigadores que reportó la vulnerabilidad, un error de confusión de tipos en el manejo de la opción transferList permite que el código del sandbox corrompa la memoria de la aplicación host.

"A partir de un solo ivm.Reference, la forma estándar en que los hosts proporcionan capacidades al sandbox, escalamos el error desde un fallo controlado hasta la toma de control del flujo de control del host", explicó Staicu en un informe técnico. Esto implica que un atacante podría causar una corrupción de memoria en el proceso host, provocando un fallo de segmentación (SIGSEGV) o incluso un escape del sandbox, comprometiendo la seguridad del entorno.

Impacto y Recomendaciones

El impacto mínimo demostrado es un fallo controlado que puede ser provocado por cualquier invitado que tenga acceso a un ivm.Reference, lo que equivale a un ataque de denegación de servicio. En el peor de los casos, la explotación de esta vulnerabilidad podría llevar a la ejecución remota de código en el host, lo que representa un riesgo significativo para la integridad del sistema.

Los mantenedores del proyecto, incluido Marcel Laverdet, han instado a todos los usuarios de Isolated-vm a actualizar a las versiones más recientes para garantizar una protección adecuada. Aunque se han compartido detalles sobre la vulnerabilidad, se ha optado por retener información sobre la explotación completa para evitar que actores maliciosos realicen ataques.

"Lo más importante es que lo que no se rompió fue el primitivo de aislamiento en sí mismo", destacó Staicu. "La frontera de Isolate de V8 se mantuvo, pero lo que falló fue el código en C++ que gestiona los valores a través de esa frontera. Un bloque de construcción perfectamente sólido fue socavado por la capa de enlace que lo rodea".

Con el crecimiento del uso de Isolated-vm, es fundamental que los desarrolladores y administradores de sistemas estén atentos a las actualizaciones y mantengan sus entornos seguros frente a esta y otras vulnerabilidades emergentes.

Fuente

Ver noticia original