Overzicht:
Op 4 december 2024 werd Vestra_DAO gehackt vanwege een logische fout in het stakingcontract unStake() functie. De functie kon niet controleren of een uitgezette positie nog actief was voordat deze kon worden ongedaan gemaakt, waardoor de aanvaller herhaaldelijk opbrengst kon claimen van een reeds niet-uitgezette positie. De aanvaller maakte misbruik van deze fout en bereidde zich een maand lang voor door eerst VSTR-tokens in te zetten en vervolgens de unStake()functie meerdere keren om de opbrengst herhaaldelijk over te hevelen. Door de aanval werd voor ongeveer $ 500.000 aan tokens uit het Vestra DAO-contract gehaald.
VSTR is een token dat semi-gedecentraliseerde, Web2+Web3 hybride diensten levert, gelanceerd en ontwikkeld door de NFT-gemeenschap “CMLE” (Crypto Monster Limited Edition). Tegelijkertijd opereert het als een Decentralized Autonomous Operation (DAO)-project dat DeFi-oplossingen (Decentralized Finance) biedt. Het project, gebouwd op het Ethereum-platform, voldoet aan de ERC20-normen.
Aanvalstransacties: 0x213991ca, 0xa0dcf9b
Kwetsbaar contract: 0x8A30d6
Adres van de aanvaller: 0x954386
Contractadres van de aanvaller: 0x81AD99
Een maand voor de aanval zette de aanvaller een initieel bedrag van 500.000 VSTR-tokens in in het Vestra DAO-stakingcontract.
De lock-periode voor staking was ingesteld op één maand, waardoor de aanvaller kon wachten en opbrengst kon verdienen.
Nadat de vergrendelingsperiode voorbij was, gebruikte de aanvaller hetzelfde account om het unStake() functie.
Deze actie leverde de aanvankelijke 500.000 VSTR op, samen met een opbrengst van 20.000 VSTR, wat de inzetpositie markeerde als isActive = false.
Vanwege een ontbrekende cheque voor de isActive status in de unStake() functie zou de aanvaller herhaaldelijk kunnen bellen unStake()op dezelfde positie.
Elke volgende call leverde nog eens 20.000 VSTR op, ondanks dat de positie inactief was.
Om onderstroom te voorkomen data.totalStaked En data.countUserde aanvaller heeft nieuwe accounts of slimme contracten gemaakt.
Deze nieuwe accounts zetten elk 500.000 VSTR in, waardoor het stakingssaldo van het contract voldoende bleef.
De aanvaller wisselde af tussen het ongedaan maken van de oorspronkelijke positie om 20.000 VSTR aan opbrengst per call te claimen en het inzetten van nieuwe tokens met behulp van nieuwe accounts of contracten om de positie te behouden. data.totalStaked En data.countUser waarde.
Het proces werd herhaald totdat het symbolische saldo van het contract volledig was opgebruikt, waarbij gebruik werd gemaakt van de ongecontroleerde logica om zoveel mogelijk opbrengst te verkrijgen.
De aanval veroorzaakte een financieel verlies van ongeveer $ 500.000 aan VSTR-tokens.
Bekijk hier de geldstroom:
Vestra DAO heeft het hackincident aangepakt via hun officiële Twitter (X)-account:
- Zorg ervoor dat de
unStake()functie controleert of een uitzetpositie nog actief is voordat verder wordt gegaan. - Verwijder de stakinggegevens van de gebruiker na een succesvolle verwijdering om herhaalde claims te voorkomen.
- Werk samen met gerenommeerde auditors zoals QuillAudits om slimme contracten te analyseren en kwetsbaarheden te identificeren.
Als u voor een gerenommeerd accountantskantoor als QuillAudits kiest, bent u ervan verzekerd dat uw protocol streng wordt gecontroleerd door ervaren beveiligingsprofessionals. QuillAudits is gespecialiseerd in het blootleggen van kritieke kwetsbaarheden en het bieden van uitvoerbare herstelstrategieën. Onze expertise helpt uw project te beschermen tegen aanvallen en zorgt ervoor dat beveiligingsproblemen proactief worden aangepakt.
