Alertas de seguridad

Falla en la generación de código en el módulo Cranelift

cranelift_Mesa de trabajo 1

Cranelift es un generador de código abierto sostenido por Bytecode Alliance, el cual consiste en una representación intermedia independiente del objetivo en código de máquina ejecutable.

Hay un error en 0.73 del backend Cranelift x64 que puede crear un escenario que podría resultar en un posible escape de la caja de arena; en un programa Wasm. Este error se introdujo en el nuevo backend el 2020-09-08 y se incluyó por primera vez en un lanzamiento el 2020-09-30, pero el nuevo backend no era el predeterminado antes de 0.73. La versión 0.73 lanzada recientemente con la configuración predeterminada y las versiones anteriores con una marca de compilación explícita para seleccionar el nuevo backend son vulnerables.

El error en cuestión realiza una extensión de signo en lugar de una extensión cero en un valor cargado desde la pila, bajo un conjunto específico de circunstancias. Si ocurren esas circunstancias, el error podría permitir el acceso a direcciones de memoria de hasta 2GiB antes del inicio del montón del programa Wasm. Si el límite del montón es mayor que 2GiB, entonces sería posible leer la memoria desde un rango computable dependiendo del tamaño del límite del montón.

El impacto de este error depende en gran medida de la implementación del montón específicamente: si el montón tiene comprobaciones de límites y no se basa exclusivamente en las páginas de protección y el límite del montón es 2GiB o más pequeño, entonces este error no se puede utilizar para alcanzar memoria de otro montón de programas Wasm.

El impacto de la vulnerabilidad se mitiga si no hay memoria asignada en el rango accesible mediante este error, por ejemplo, si hay una región de protección de 2 GiB antes del montón del programa Wasm, el error en cuestión realiza una extensión de signo en lugar de una extensión cero en un valor cargado desde la pila, cuando el asignador de registros recarga un valor entero derramado más estrecho que 64 bits.

PRODUCTOS AFECTADOS

  • Versiones iguales o inferiores de Cranelift 0.73.0

ACCIONES RECOMENDADAS

  • Actualizar a las versiones 0.73.1 o 0.74 para remediar esta vulnerabilidad