Ethereum contract verliest miljoenen door opslagbotsing
Een beveiligingsonderzoek van SlowMist onthult een kritieke fout in een Ethereum smart contract die tot massale diefstal leidt. Aanvallers weten ongeveer 14,4 ETH weg te sluizen door gebruik te maken van een opslagbotsing tussen twee onderdelen van de code. Dit gebeurde op een moment dat Ethereum rond de $1.610 handelt.
Ethereum is verkrijgbaar bij Bitvavo en Bybit.
Opslag slot collision veroorzaakt miljoenendiefstal
Het probleem ontstaat door een botsing tussen twee verschillende functies in het ATOHook contract. De rewards mapping en de reentrancy guard van Solady (een veelgebruikte beveiligingsbibliotheek) gebruiken dezelfde opslagplek. Dit leidt ertoe dat de sentinel waarde van de reentrancy guard (0xffffffffffffff) tegelijkertijd wordt gelezen als een beloningsbedrag.
Doordat deze opslag slot collision optreedt, kan een aanvaller kunstmatig hoge beloningen claimen. De getReward functie wordt beschermd door een nonReentrant modifier, maar de modifier schrijft eigenlijk de verdedigingsmechanisme naar dezelfde plek waar de beloningen worden opgeslagen. Dit creëert een dubbel gebruik van dezelfde geheugenlocatie.
Aanvaller weet 200 keer achter elkaar geld op te nemen
De aanvaller (opgelister als 0x2d2aafc193c24e59bd16139056ac9b4df4d37ad0) kan dankzij deze fout 200 keer achtereenvolgens beloningen claimen. Elke keer wordt het ingeblazen bedrag als ETH uitbetaald, wat resulteert in een totaal verlies van 14,4 ETH voor het slachtoffer.
SlowMist toont aan dat dit een gevolg is van onvoldoende testing en architectuurfouten in het contract. De kollisie tussen rewards accounting en de reentrancy guard-opslag maakt het mogelijk om het beveiligingsmechanisme volledig te omzeilen en onbeperkt middelen af te tappen.
🚨SlowMist TI Alert🚨 💸 Loss: 14.411518807585587 ETH 🔍 Root Cause: Storage slot collision between `ATOHook.rewards` mapping slot and Solady `ReentrancyGuard` fixed slot (`0x02215292eb9609279094554c6e223f800950648ddfa3da30329838d6c170928d`). The `nonReentrant` modifier in…
Hoe zulke fouten voorkomen kunnen worden
Dit incident benadrukt het belang van grondige code audits en het juist begrijpen van onderliggende blockchain-architectuur. Bij het werken met bekende bibliotheken zoals Solady is het cruciaal om te weten hoe deze intern opslag slots gebruiken. Een simpele configuratiewijziging of het verplaatsen van één mapping kan zo’n catastrofale botsing voorkomen.
Ontwikkelaars moeten zich bewust zijn dat opslagcollisies niet alleen theoretisch gevaar vormen. Ze kunnen rechtstreeks exploiteerbaar zijn en miljoenenbedragen kosten. Het slachtoffer in dit geval ondervindt de gevolgen van een voorkoombare fout die via proper auditing had moeten worden gedetecteerd.
Blijf altijd op de hoogte van het laatste crypto nieuws
Geen financieel advies. Blockchain Stories biedt uitsluitend educatieve en informatieve content. Crypto assets zijn zeer volatiel en je kunt je volledige inleg verliezen. Doe altijd je eigen onderzoek. Lees onze volledige disclaimer.
Affiliate vermelding. Sommige links op deze site zijn partner/affiliate links. Als je je via zo'n link aanmeldt bij een partner, ontvangen wij mogelijk een commissie, zonder extra kosten voor jou. Dit beïnvloedt nooit onze berichtgeving. Lees onze redactionele richtlijnen.