Temas en tendencia
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
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.
2.33K
Populares
Ranking
Favoritas