Se ha descubierto una nueva vulnerabilidad de desbordamiento de enteros en el módulo de seguridad de Move.

robot
Generación de resúmenes en curso

Se descubre una nueva vulnerabilidad de desbordamiento de enteros en el módulo de seguridad de referencias del lenguaje Move

Recientemente, al investigar a fondo el lenguaje Move, se descubrió una nueva vulnerabilidad de desbordamiento de enteros. Esta vulnerabilidad se encuentra en el módulo de verificación de seguridad de referencias, y su proceso de activación es bastante interesante. Este artículo realizará un análisis profundo de esta vulnerabilidad, al tiempo que presentará conocimientos de fondo relacionados con el lenguaje Move.

Numen Cyber descubre otra vulnerabilidad crítica en el lenguaje move

El lenguaje Move verifica las unidades de código antes de ejecutar el bytecode, y todo el proceso de verificación se divide en 4 pasos. La vulnerabilidad encontrada en esta ocasión se presenta en el paso de reference_safety.

El módulo de verificación de seguridad se encarga principalmente de verificar si existen referencias colgantes, si el acceso a referencias mutables es seguro y si el acceso a referencias de almacenamiento global es seguro, entre otros. El proceso de verificación comienza con la función analyze_function y verifica cada bloque básico.

En el lenguaje Move, un bloque básico se refiere a una secuencia de código que no tiene instrucciones de ramificación, excepto la entrada y la salida. El sistema determina el bloque básico al recorrer el bytecode y buscar todas las secuencias de instrucciones de ramificación y bucles.

Numen Cyber descubre otra vulnerabilidad crítica en el lenguaje move

El lenguaje Move admite dos tipos de referencia: referencia inmutable (&) y referencia mutable (&mut). El módulo de seguridad de referencias escaneará las instrucciones de bytes de cada bloque básico en la función para determinar si todas las operaciones de referencia son legales. El proceso de verificación utiliza la estructura AbstractState, que incluye dos componentes: el gráfico de préstamos y las locales, para garantizar la seguridad de las referencias en la función.

Numen Cyber descubrió otra vulnerabilidad crítica en el lenguaje move

Durante el proceso de verificación, el sistema generará el código del bloque básico para el estado posterior y luego combinará el estado anterior y el estado posterior para actualizar el estado del bloque. Si el estado cambia y hay un bucle, se volverá a ejecutar el bloque básico hasta que el estado posterior sea igual al estado anterior o ocurra un error.

Numen Cyber descubre exclusivamente otra vulnerabilidad crítica en el lenguaje move

La vulnerabilidad se encuentra en la función join_. Cuando la longitud de los parámetros más la longitud de las variables locales supera 256, el uso del tipo u8 para iterar sobre los locales puede provocar un desbordamiento de enteros. Aunque el lenguaje Move tiene un proceso de verificación del número de locales, solo se verifica la cantidad de variables locales, sin incluir la longitud de los parámetros.

Numen Cyber descubre en exclusiva otra vulnerabilidad crítica en el lenguaje move

Este desbordamiento de enteros puede provocar un ataque de denegación de servicio. Un atacante puede construir un bloque de código en bucle que explote el desbordamiento para modificar el estado del bloque. Cuando se vuelve a ejecutar la función execute_block, si el índice que necesita acceder a las instrucciones no existe en el nuevo mapa de locales de AbstractState, provocará un fallo del sistema.

Numen Cyber descubre otra vulnerabilidad crítica en el lenguaje move

Para demostrar esta vulnerabilidad, podemos construir un bloque básico que contenga instrucciones de bifurcación incondicionales. Al establecer los parámetros adecuados y la cantidad de variables locales, se puede hacer que la longitud del mapa de locales se desborde a 8. En la segunda ejecución, intentar acceder a un offset que no existe causará un pánico.

Numen Cyber descubre en exclusiva otra vulnerabilidad crítica en el lenguaje move

Numen Cyber descubrió exclusivamente otra vulnerabilidad crítica en el lenguaje move

Numen Cyber descubrió en exclusiva otra vulnerabilidad crítica en el lenguaje move

Numen Cyber descubrió una nueva vulnerabilidad crítica en el lenguaje move

Numen Cyber descubre una nueva vulnerabilidad crítica en el lenguaje move

Numen Cyber descubre otra vulnerabilidad crítica en el lenguaje move

Numen Cyber descubre otra vulnerabilidad crítica en el lenguaje move

Numen Cyber descubre en exclusiva otra vulnerabilidad crítica en el lenguaje move

Esta vulnerabilidad nos recuerda que incluso los lenguajes diseñados cuidadosamente pueden tener riesgos de seguridad. Para el lenguaje Move, se recomienda agregar más código de verificación en tiempo de ejecución para prevenir situaciones inesperadas. Actualmente, Move realiza principalmente chequeos de seguridad en la fase de verificación, pero una vez que se elude la verificación, podría provocar problemas más graves.

Como pioneros en la investigación de seguridad del lenguaje Move, continuaremos explorando a fondo los problemas de seguridad relacionados, contribuyendo al desarrollo saludable del ecosistema Move.

Numen Cyber descubre otra vulnerabilidad crítica en el lenguaje move

MOVE-0.02%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 4
  • Compartir
Comentar
0/400
RunWithRugsvip
· hace14h
¿Cómo es que ha surgido otra vulnerabilidad de seguridad?
Ver originalesResponder0
TestnetFreeloadervip
· hace14h
¡Ya hay superficie de ataque, bien!
Ver originalesResponder0
JustAnotherWalletvip
· hace14h
Ha ocurrido otro problema, la revisión está siendo culpada.
Ver originalesResponder0
LiquidityNinjavip
· hace14h
Otra vez hay que reparar move, jejeje.
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)