Een kritieke kwetsbaarheid die werd gevonden op het gedecentraliseerde uitwisselingsplatform SushiSwap bracht meer dan $350 miljoen aan ETH in gevaar, voordat het door ontwikkelaars werd gepatcht, zo bleek uit een rapport van gisteren.
Het werd ontdekt door ‘samczsun’, een pseudoniem beveiligingsonderzoeker bij Paradigm, die Sushi-ontwikkelaars snel over de bug informeerde en hielp om mogelijke schade te beperken.
“Vandaag wil ik je vertellen hoe ik een kwetsbaarheid heb gevonden en geholpen heb met het patchen van meer dan 109k ETH (~350 miljoen USD tegen de huidige wisselkoers)”, schreef samczsun, eraan toevoegend dat de exploit betrekking had op protocollen die veilig en vrij waren van bugs, maar dat hun samenstelling dat niet was.
SushiSwap, aangedreven door het SUSHI-token, is een op Ethereum gebaseerde gedecentraliseerde beurs waarmee gebruikers cryptocurrencies kunnen ruilen, verdienen, farmen en lenen. De DEX lanceerde onlangs ook het Minimal Initial Sushi Offering (MISO)-programma als onderdeel van de verbreding van haar productsuite.
En wat is MISO? Het is een SushiSwap-aangedreven protocol waarmee gebruikers en ontwikkelaars nieuwe projecten kunnen lanceren en hun tokens direct op SushiSwap kunnen vermelden. Dankzij dit protocol kan SushiSwap meer kapitaal verwerven en nog meer gebruikers bedienen.
De manier waarop MISO samenwerkt met SushiSwap is waar de kwetsbaarheid werd gevonden. “Het MISO-platform beheert twee soorten veilingen: veiling bij afslag* en batchveilingen*”, schreef samczsun. De onderzoeker controleerde vervolgens de code en vond een contractcode die vergelijkbaar was met wat werd gebruikt door het gedecentraliseerde optiemarktteam Opyn, een waarmee hackers ETH die meerdere keren naar het contract waren gestuurd, konden hergebruiken.
“Ik realiseerde me dat ik naar exact dezelfde kwetsbaarheid in een andere vorm keek”, verklaarde samczsun en voegde eraan toe:
“Binnen een gedelegeerdecall blijven msg.sender en msg.value behouden. Dit betekende dat ik in staat zou moeten zijn om meerdere calls naar commitEth te batchen en mijn msg.value opnieuw te gebruiken voor elke toezegging, waardoor ik gratis op de veiling kan bieden.”
De bug zou ervoor hebben gezorgd dat elke ETH die over de harde limiet van de veiling is verzonden, wordt terugbetaald.
Kernleden van het SushiSwap-team werden onmiddellijk op de hoogte gebracht van de kwetsbaarheid en gingen samen met samczsun “binnen enkele minuten” aan de slag om de bug te repareren. Het team voltooide deze door code te schrijven om de resterende toewijzing te kopen en de veiling onmiddellijk af te ronden (een stap waarvoor beheerdersrechten nodig waren).