Cómo un hacker ahorró 109K ETH en un contrato basado en SushiSwap

El hacker de sombrero blanco Samczsun de la firma de inversiones Paradigm informó sobre lo que podría ser uno de los mayores rescates jamás realizados en el protocolo SushiSwap, el ecosistema Ethereum y tal vez en todo Internet.

Acaba de realizar tal vez el mayor rescate de sombrero blanco de la historia. Hora de la historia pronto ?

– samczsun (@samczsun) 17 de agosto de 2021

Samczun afirmó en una publicación que encontró y ayudó a parchear una vulnerabilidad que amenazaba más de $ 350 millones o 109,000 ETH de un contrato basado en Sushiswap de su MISO plataforma. El hacker blanco revisó el contrato después de descubrir que se estaba llevando a cabo una nueva subasta en la plataforma.

MISO usa dos tipos de subastas: conducto y lote. Mientras Samczun estaba revisando el contrato de DutchAuction, el hacker blanco descubrió que las funciones InitMarket e InitAuction carecían de controles de acceso. Esto fue "extremadamente preocupante".

Sin embargo, realmente no esperaba que esto fuera una vulnerabilidad, ya que no esperaba que el equipo de Sushi cometiera un paso en falso tan obvio. Efectivamente, la función initAccessControls validó que el contrato aún no se había inicializado.

Samczun dijo que lo anterior combinado con el uso de una biblioteca mixin llamada BoringBatchable por el contrato lo hacía más sospechoso. El hacker reconoció los ingredientes que llevaron a un ataque a otra plataforma durante 2020.

Así, Samczun pudo identificar que SushiSwap estaba en peligro. Si se explota, la vulnerabilidad permitiría a un mal actor reutilizar una cantidad fija de ETH para agrupar varias llamadas al contrato. Esto permitiría efectivamente al atacante “pujar en la subasta de forma gratuita”.

Si bien el procesamiento de los pagos con fichas implicaba una llamada transferFrom separada para cada iteración del bucle, el procesamiento de los pagos ETH simplemente verificaba si msg.value era suficiente. Esto permitió al atacante reutilizar el mismo ETH varias veces.

Arreglando un error multimillonario en SushiSwap

Además de las ofertas gratuitas, un mal actor podría robar los fondos del contrato de SushiSwap activando un reembolso. El atacante solo habría tenido que enviar una cantidad mayor de ETH que el límite máximo de la subasta. Samczun dijo:

Esto se aplicó incluso una vez que se alcanzó el límite máximo, lo que significa que en lugar de rechazar la transacción por completo, el contrato simplemente reembolsaría todo su ETH.

Apenas unos minutos después de que el pirata informático blanco descubrió la vulnerabilidad, poner configurar una "bifurcación de mainnet de los pobres en la línea de comando". Por lo tanto, Samczun pudo verificar si el contrato permitiría el ataque descrito anteriormente.

Una vez que se verificó la tesis, el hacker blanco informó del error al CTO de SushiSwap, Joseph Delong. Él y otros miembros del equipo del protocolo coordinaron una respuesta para eliminar el error. El equipo y Samczun “rescataron” los fondos comprando los artículos restantes. Por lo tanto, se finalizó la subasta.

Como dijo el miembro seudónimo de la comunidad DC Investor, el hecho de que la vulnerabilidad fue descubierta por un hacker de sombrero blanco de una empresa de inversión con una alta participación en Uniswap, el intercambio descentralizado que compite con SushiSwap, dice mucho sobre el "espíritu" del ecosistema Ethereum. DC dijo:

Encontró y ayudó a parchear una vulnerabilidad que ponía en riesgo más de 109k ETH, todos saben que Paradigm tiene grandes bolsas UNI / Uniswap, pero Sam de su equipo solo ayudó a salvar a SushiSwap (un competidor aparente) de un error crítico. ethos del espacio entre los mejores actores.

En el momento de escribir este artículo, SUSHI cotiza a $ 12,50 con una pérdida del 2,4% en el gráfico diario.

 SushiSwap SUSHI SUSHIUSDT  SushiSwap SUSHI SUSHIUSDT SUSHI moviéndose hacia los lados después de que se publicó el informe de error en el gráfico diario. Fuente: SUSHIUSDT Tradingview