Bienvenido de nuevo al Enfoque de vulnerabilidades de Sherlock, donde destacamos una vulnerabilidad impactante descubierta durante una auditoría de Sherlock.
Esta semana, examinamos una denegación de servicio encontrada en el concurso de @GMX_IO por @0xdeadbeef____ y @IllIllI000.
Crédito a @int0x1catedCode por el desglose.

Resumen de la vulnerabilidad:
La vulnerabilidad permite a un atacante manipular el flujo de ejecución de órdenes proporcionando longitudes de motivo de reversión falsas que no coinciden con los datos reales. Esto hace que el manejo de errores del protocolo lea regiones de memoria incorrectas, lo que puede interrumpir el proceso de ejecución o provocar un comportamiento inesperado al procesar pedidos fallidos.
Pasos de ataque:
1. Fase de configuración
Implementar un contrato malintencionado que implemente un comportamiento de reversión personalizado
El contrato malicioso debe ser invocable por el protocolo de destino (por ejemplo, como controlador de devolución de llamada).
2. Crear datos de reversión maliciosos
Revertir datos de estructura con un parámetro de longitud falsificado.
3. Ejecutar orden a través del protocolo
Crear un pedido que desencadene la interacción con el contrato malintencionado
Cuando el protocolo procesa el pedido y llama al contrato malicioso, se revierte con los datos creados.
El manejo de errores del protocolo intenta decodificar el motivo de reversión utilizando la longitud falsa.
4. Desencadenar desbordamiento de lectura de memoria
El protocolo lee la memoria en función del parámetro de longitud falsa
Esto hace que lea más allá de los límites reales de los datos de reversión.
¿Cuál es el impacto?
Denegación de servicio: las órdenes pueden no ejecutarse correctamente, bloqueando las operaciones legítimas del protocolo, como la liquidación de posiciones incorrectas
Interrupción de la ejecución de pedidos: el procesamiento de pedidos por lotes puede detenerse, lo que afecta a varios usuarios
Pérdida de gas: el procesamiento de datos de reversión mal formados puede consumir un exceso de gas
La causa raíz:
1. Parámetros de longitud no comprobados: el protocolo confía en el valor de longitud proporcionado en los datos de reversión sin validación
2. Faltan comprobaciones de límites: no hay verificación de que la longitud declarada coincida con el tamaño real de los datos
La mitigación:
1. Validar siempre la longitud de los datos de reversión
2. Implementar límites de longitud máxima
Estamos orgullosos de haber ayudado a asegurar @GMX_IO a través de este descubrimiento.
Cuando es absolutamente necesario que sea seguro, Sherlock es la elección correcta.
1.95 K
11
El contenido al que estás accediendo se ofrece por terceros. A menos que se indique lo contrario, OKX no es autor de la información y no reclama ningún derecho de autor sobre los materiales. El contenido solo se proporciona con fines informativos y no representa las opiniones de OKX. No pretende ser un respaldo de ningún tipo y no debe ser considerado como un consejo de inversión o una solicitud para comprar o vender activos digitales. En la medida en que la IA generativa se utiliza para proporcionar resúmenes u otra información, dicho contenido generado por IA puede ser inexacto o incoherente. Lee el artículo enlazado para más detalles e información. OKX no es responsable del contenido alojado en sitios de terceros. Los holdings de activos digitales, incluidos stablecoins y NFT, suponen un alto nivel de riesgo y pueden fluctuar mucho. Debes considerar cuidadosamente si el trading o holding de activos digitales es adecuado para ti según tu situación financiera.