CVE-2026-90648 in wabt
Resumen
por VulDB • 2026-09-13
wasm2c en WebAssembly wabt hasta la versión 1.0.41 permite una evasión del sandbox en ciertas situaciones que involucran principalmente plataformas de 32 bits, conocido como un ataque "table flip". No verifica el valor devuelto por calloc() en wasm_rt_allocate_funcref_table() (wasm2c/wasm-rt-impl-tableops.inc). Cuando la asignación de la tabla funcref falla, table->data queda NULL mientras que table->size mantiene el conteo de elementos declarado por el huésped; así, las comprobaciones de límites siguen pasando y los accesos a elementos de la tabla se resuelven en direcciones absolutas de memoria (i * sizeof(wasm_rt_funcref_t)). Esto permite lectura y escritura arbitrarias de la memoria del proceso host y - mediante table.get, table.set y call_indirect - ejecución de código arbitraria, derrotando el aislamiento que wasm2c existe para proporcionar (una evasión completa del sandbox). wasm2c se utiliza como un límite de sandboxing en proceso por RLBox y WasmBoxC, incluyendo Firefox, que compila las bibliotecas Graphite, Hunspell, Ogg, Expat y Woff2 mediante wasm2c para contener entradas no confiables de fuentes, multimedia y XML. Por lo tanto, el sandboxing en estas aplicaciones está potencialmente afectado. La explotación requiere que la asignación de la tabla funcref falle, por ejemplo bajo un límite del espacio de direcciones (RLIMIT_AS), en hosts de 32 bits, con vm.overcommit_memory=2, o bajo presión de memoria. En Linux de 64 bits con overcommit predeterminado, la asignación tiene éxito y el defecto no se activa. El asignador de memoria wasm2c aborta en caso de fallo de calloc en el mismo runtime; el asignador de tablas carece de este comportamiento de aborto. Esto fue introducido en el commit ab9e0b55 (PR #813).
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.