La vulnerabilidad de desbordamiento de enteros en el módulo de seguridad de Move puede causar que el nodo rechace el servicio.

robot
Generación de resúmenes en curso

El módulo de seguridad de referencia Move tiene una vulnerabilidad de desbordamiento de entero

Recientemente, investigadores de seguridad descubrieron una grave vulnerabilidad por desbordamiento de enteros al analizar a fondo el lenguaje Move. Esta vulnerabilidad existe en el módulo de verificación de seguridad de referencias y podría llevar a ataques de denegación de servicio. Este artículo detallará el principio y el impacto de esta vulnerabilidad.

Contexto de la vulnerabilidad

El lenguaje Move realiza una verificación de código antes de ejecutar el bytecode, que incluye la comprobación de la seguridad de las referencias. Este proceso se divide en varios pasos, y la vulnerabilidad descubierta se presentó en la fase de verificación de la seguridad de las referencias.

El proceso principal de validación de seguridad es:

  1. Dividir el código en bloques básicos
  2. Analizar cada bloque básico
  3. Estado antes y después del análisis de fusión
  4. Propagar resultados a bloques posteriores

Se utiliza la estructura AbstractState para representar el estado de análisis, que incluye información sobre locals y el gráfico de préstamos.

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

Detalles de la vulnerabilidad

La vulnerabilidad se encuentra en la función join_ del estado de análisis de fusión. Esta función itera sobre locals utilizando el tipo u8, pero si la suma de la longitud de los parámetros y la longitud de las variables locales supera 256, se producirá un desbordamiento de enteros.

Específicamente:

  • usar self.iter_locals() para iterar locales en la función join_
  • iter_locals() devuelve un iterador de tipo u8
  • Si la longitud de los parámetros + la longitud de las variables locales > 256, el iterador se desbordará.

Aunque Move tiene un proceso de verificación del número de locales, solo verifica la cantidad de variables locales y no incluye la longitud de los parámetros.

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

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

Numen Cyber ha descubierto otra vulnerabilidad crítica en el lenguaje move

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

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

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

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ó exclusivamente otra vulnerabilidad crítica en el lenguaje move

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

Explotación de vulnerabilidades

Un atacante puede construir un bloque de código en bucle para utilizar un desbordamiento y cambiar el estado del bloque:

  1. El número total de parámetros y variables locales es mayor que 256
  2. Después de la primera ejecución, la longitud del nuevo mapa de locales se desbordará y se volverá más pequeña
  3. Al ejecutar nuevamente, acceder a un índice de locals que no existe provocará un panic

Esto podría provocar un ataque de denegación de servicio en los nodos.

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

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

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

Impacto de la vulnerabilidad

Esta vulnerabilidad puede causar:

  1. El validador de bytecode Move se bloquea
  2. Los nodos de blockchain que dependen de Move rechazan el servicio
  3. Evitar parte de las verificaciones de seguridad

Sugerencias de reparación

  1. Añadir verificación de la longitud de los parámetros en la comprobación de límites de locals
  2. Utilizar tipos de enteros más grandes como u16 para iterar locales
  3. Agregar verificaciones de seguridad adicionales durante la ejecución

Resumen

Esta vulnerabilidad demuestra una vez más que incluso los lenguajes diseñados rigurosamente pueden tener fallos de seguridad. En el caso del lenguaje Move, se recomienda agregar las verificaciones de seguridad necesarias no solo en la fase de validación, sino también en tiempo de ejecución. Los investigadores de seguridad continuarán analizando a fondo el lenguaje Move para descubrir más problemas potenciales.

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

MOVE-3.54%
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
  • 5
  • Republicar
  • Compartir
Comentar
0/400
MidnightTradervip
· hace5h
¿De quién es este código escrito por un novato? Estoy rendido.
Ver originalesResponder0
MevShadowrangervip
· hace5h
Otra vez jugando con desbordamiento de enteros
Ver originalesResponder0
WagmiOrRektvip
· hace5h
Afortunadamente, cerré todas las posiciones en Move anteriormente.
Ver originalesResponder0
CommunityWorkervip
· hace5h
¿Se va a desplomar move de nuevo? ¿Por qué tanto miedo?
Ver originalesResponder0
CryingOldWalletvip
· hace5h
¿Otra vulnerabilidad? Move ya no es atractivo, ¿verdad?
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)