CVE-2026-34971 in wasmtimeinformación

Resumen

por VulDB • 2026-05-21

Wasmtime es un entorno de ejecución para WebAssembly. Desde la versión 32.0.0 hasta las versiones anteriores a 36.0.7, 42.0.2 y 43.0.1, el backend de compilación Cranelift de Wasmtime contiene un error en arquitecturas aarch64 al realizar cierto tipo de accesos a memoria heap, lo que provoca que se acceda a una dirección incorrecta. Cuando se combina con comprobaciones explícitas de límites en un módulo WebAssembly invitado (guest), esto puede crear una situación en la que existan dos cálculos divergentes para la misma dirección: uno para la comprobación de límites y otro para la carga de datos. Esta diferencia en la dirección sobre la que se opera significa que un módulo invitado puede superar la comprobación de límites pero cargar una dirección diferente. En conjunto, esto habilita una primitiva de lectura/escritura arbitraria para WebAssembly invitado al acceder a la memoria del host. Esto constituye una fuga del entorno de aislamiento (sandbox), ya que los módulos invitados pueden leer y escribir memoria arbitraria del host. Esta vulnerabilidad requiere una combinación de varios factores, todos los cuales deben cumplirse para que se produzca esta situación y se eludan las restricciones del sandbox. Esta forma de carga mal compilada solo ocurre en memorias lineales WebAssembly de 64 bits, o cuando está habilitado Config::wasm_memory64. WebAssembly de 32 bits no se ve afectado. Las mitigaciones contra Spectre o los traps basados en señales deben estar deshabilitados. Cuando las mitigaciones contra Spectre están habilitadas, no se genera la forma de carga ofensiva. Cuando los traps basados en señales están deshabilitados, las mitigaciones contra Spectre también se deshabilitan automáticamente. El error específico en Cranelift es una mala compilación de una carga de la forma load(iadd(base, ishl(index, amt))) donde amt es una constante. El valor de amt se enmascara incorrectamente para probar si es un determinado valor, y este enmascaramiento incorrecto hace que Cranelift pueda hacer coincidir erróneamente esta regla de reducción durante la selección de instrucciones, desviándose de la semántica de WebAssembly y Cranelift. Esta reducción incorrecta, por ejemplo, cargaría una dirección mucho más lejana de lo previsto, ya que el cálculo de la dirección correcta se habría desbordado y convertido en un valor menor. Esta vulnerabilidad está corregida en las versiones 36.0.7, 42.0.2 y 43.0.1.

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

GitHub M

Reservar

2026-03-31

Divulgación

2026-04-09

Moderación

aceptado

Artículo

VDB-356652

CPE

listo

EPSS

0.00016

KEV

no

Actividades

muy bajo

Fuentes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!