Análisis profundo de la vulnerabilidad de desbordamiento de enteros del módulo de seguridad de Move

robot
Generación de resúmenes en curso

Análisis de la vulnerabilidad de desbordamiento de enteros en el módulo de seguridad de referencia de Move

Este artículo analizará en profundidad una vulnerabilidad de desbordamiento de enteros recientemente descubierta en el lenguaje Move. Esta vulnerabilidad se encuentra en el módulo de verificación de seguridad de referencias y podría provocar el colapso de los nodos. A través de la explicación de este artículo, los lectores obtendrán una comprensión más profunda del lenguaje Move.

Contexto de la vulnerabilidad

El lenguaje Move realiza una verificación de código antes de ejecutar el bytecode, que se divide en 4 pasos. Esta vulnerabilidad aparece en el paso de verificación de referencia de seguridad (reference_safety).

El proceso principal de verificación de seguridad es:

  1. Reconocer bloques de código básicos
  2. Analizar cada bloque básico
  3. Estado antes y después de la fusión
  4. Propagar el estado a los bloques siguientes

La clave es mantener la estructura AbstractState, que incluye locals y el gráfico de préstamos para garantizar la seguridad de las referencias.

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

Detalles de la vulnerabilidad

La vulnerabilidad existe en la función join_. Cuando la longitud de los parámetros de la función más la longitud de las variables locales supera 256, se produce un desbordamiento de enteros debido al uso de la iteración de tipo u8.

Específicamente:

  • iter_locals() devuelve un iterador de tipo u8
  • Ocurre un desbordamiento cuando la longitud del parámetro + la longitud de la variable local > 256
  • El desarrollador solo verificó el número de variables locales, ignorando la longitud de los parámetros.

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

Explotación de vulnerabilidades

Se puede construir un bloque básico cíclico que utiliza el desbordamiento para cambiar el estado:

  1. La longitud total de los parámetros y las variables locales debe ser mayor que 256
  2. Después de la primera ejecución, la longitud de los nuevos locals se desborda y se vuelve más pequeña.
  3. Al ejecutar nuevamente, el acceso a un índice de locals que no existe provoca un pánico.

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

Demostración de PoC

Se proporciona un código PoC reproducible, que incluye un bloque básico en un bucle infinito. Al establecer parámetros adecuados y la longitud de las variables locales, se puede desencadenar un DoS.

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 una nueva vulnerabilidad crítica en el lenguaje move

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

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

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

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

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

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

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

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

Conclusión

Esta vulnerabilidad demuestra una vez más que:

  1. No hay código absolutamente seguro
  2. La importancia de la auditoría de código
  3. El tiempo de ejecución de Move requiere más verificaciones de seguridad
  4. La validación estática puede ser eludida, la seguridad en tiempo de ejecución también es importante.

Como líder en la investigación de seguridad del lenguaje Move, continuaremos profundizando en los problemas de seguridad relevantes y compartiremos los resultados de nuestra investigación con la comunidad.

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

MOVE-7.5%
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
  • 6
  • Compartir
Comentar
0/400
GasFeeCryervip
· hace4h
Las vulnerabilidades se pueden jugar, además hay DoS, ¡qué rico!
Ver originalesResponder0
TopEscapeArtistvip
· hace12h
Cometer errores es lo cotidiano en un Mercado bajista, hay que ser más cauteloso al mover ladrillos.
Ver originalesResponder0
TokenomicsTherapistvip
· hace12h
Este bug es realmente aterrador.
Ver originalesResponder0
TxFailedvip
· hace12h
jajaja clásico desbordamiento de enteros... aprendí sobre esto de la manera cara, para ser honesto
Ver originalesResponder0
SchrödingersNodevip
· hace12h
Me tiene nervioso, ¿por qué hay tantos problemas?
Ver originalesResponder0
AltcoinMarathonervip
· hace12h
hodling a través de la tormenta de desbordamiento de enteros... solo un hito más en el ultra de web3
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)