Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Vulnerabilidad crítica en SandboxJS permite toma remota de servidores – PoC publicado


Se ha descubierto una grave vulnerabilidad de escape de sandbox en la biblioteca JavaScript, que permite a los atacantes ejecutar código arbitrario en los sistemas anfitriones. La falla, registrada como CVE-2026-25881 con una puntuación CVSS crítica de 8.3/10, afecta a todas las versiones hasta la 0.8.30 y ha sido corregida en la versión 0.8.31. La vulnerabilidad explota una debilidad en el mecanismo de protección de SandboxJS.


Se ha descubierto una grave vulnerabilidad de escape de sandbox en la librería JavaScript, que permite a los atacantes ejecutar código arbitrario en los sistemas anfitriones.

La falla, registrada como CVE-2026-25881 con una puntuación CVSS crítica de 8.3/10, afecta a todas las versiones hasta la 0.8.30 y ha sido parcheada en la versión 0.8.31.

La vulnerabilidad explota una debilidad en el mecanismo de protección de SandboxJS. La librería utiliza una bandera "isGlobal" para evitar que el código en sandbox modifique objetos del sistema anfitrión.

Sin embargo, cuando referencias de prototipos globales como Map.prototype o Set.prototype se colocan en un array y luego se recuperan, la bandera de protección se elimina.

Este proceso, llamado "contaminación de prototipos", permite a los atacantes modificar objetos centrales de JavaScript de forma permanente.

Código en sandbox: const m=[Map.prototype][0]
              ↓
Creación de array: la marca isGlobal se elimina mediante valueOrProp()
              ↓
Mutación de prototipo: m.cmd='id' (prototipo del anfitrión contaminado)
              ↓
Impacto en el anfitrión: new Map().cmd === 'id' (persistente)
              ↓
RCE (dependiente de la aplicación): el código del anfitrión ejecuta execSync(obj.cmd)

Por ejemplo, el código en sandbox puede inyectar una propiedad de comando maliciosa en el prototipo de Map, que luego persiste en toda la aplicación anfitriona.

Cuando el código del anfitrión utiliza posteriormente esta propiedad contaminada en operaciones sensibles, como la ejecución de comandos del sistema, los atacantes pueden lograr la ejecución remota de código.

El investigador de seguridad k14uz publicó código de explotación funcional que demuestra tres escenarios de ataque.

La prueba de concepto más simple muestra cómo el código en sandbox puede añadir una propiedad "contaminada" al prototipo de Map, que luego aparece en todos los nuevos objetos Map creados por el anfitrión.

Demostraciones más peligrosas incluyen sobrescribir funciones integradas y ejecutar comandos del sistema como "id" para revelar información del usuario.

La cadena de ataque es sencilla:

AcciónDescripción
Crear ArrayCrea un array que contenga una referencia al prototipo.
Extraer ReferenciaExtrae la referencia del prototipo del array, haciendo que se pierda la bandera de protección.
Modificar PrototipoAñade propiedades maliciosas o sobrescribe las existentes en el prototipo.
Activar UsoEspera a que el código del anfitrión acceda a las propiedades modificadas en operaciones sensibles.

Cualquier aplicación que utilice SandboxJS para ejecutar código JavaScript no confiable es vulnerable.

Los atacantes pueden romper el aislamiento del sandbox, manipular el flujo de ejecución del anfitrión y potencialmente obtener acceso completo al sistema, dependiendo de cómo la aplicación anfitriona procese las propiedades contaminadas.

Según el aviso publicado, los desarrolladores deben actualizar inmediatamente a la versión 0.8.31, que preserva las banderas de protección en las operaciones con arrays y bloquea las escrituras en prototipos integrados.

Como defensa adicional, los equipos de seguridad deberían congelar los prototipos integrados antes de ejecutar código no confiable y auditar las aplicaciones en busca de operaciones sensibles que puedan utilizar propiedades de objetos controladas por el usuario.

Esta vulnerabilidad destaca los desafíos de crear sandboxes seguros en JavaScript. Subraya la importancia de la defensa en profundidad al manejar código no confiable.



Fuentes:
https://cybersecuritynews.com/sandboxjs-vulnerability-poc-released/


0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.