Op 15 maart 2026 verloor Venus Protocol miljoenen aan een donatie-aanval. De aanvaller manipuleerde de exchange rate op het vTHE-contract door tokens rechtstreeks ernaar te transfereren -- waardoor collateral values circa 3x werden opgeblazen zonder iets te minten. Vervolgens leende hij tegen de opgeblazen positie en drainede hij liquide assets.
De root cause is genant eenvoudig: Venus's supply cap controleerde alleen het mint()-pad. Directe ERC-20 transfers naar het contract werden volledig niet gecontroleerd.
Hoe het werkte
Venus is een BNB Chain lending protocol waarbij de exchange rate tussen vTokens en hun onderliggende tokens de leencapaciteit bepaalt. Die exchange rate gebruikt de live tokenbalans van het contract via balanceOf(). Het protocol ging ervan uit dat alle balansverhogingen via mint() kwamen, waar supply caps worden gehandhaafd. Maar elke standaard ERC-20 transfer verhoogt de balans van een contract zonder mint() te triggeren.
De aanvaller besteedde negen maanden aan het opbouwen van een positie -- hij stortte 12,2 miljoen THE-tokens via normaal minten, circa 84% van de supply cap van 14,5 miljoen. Geduldig opgebouwd. Vervolgens transfereerden in een enkele atomaire transactie meerdere voorgefinancierde wallets THE rechtstreeks naar het vTHE-contract. De balans van het contract sprong naar 53,2 miljoen -- meer dan 3,5x de geautoriseerde limiet -- en de exchange rate ging van ~1,03 naar ~3,17.
Met het opgeblazen collateral leende hij 6,67 miljoen CAKE, 1,58 miljoen USDC, 2.801 BNB en circa 20 wBTC. Daarna swapte hij geleende tokens voor meer THE, transfereerde het terug, en herhaalde het. De recursieve lus versterkte de leencapaciteit bij elke iteratie.
Waarom het lastig te analyseren is
Op het niveau van event-logs zien de opgeblazen balansen er legitiem uit. Als je vertrouwt op bijgehouden mintingdata mis je dat de exchange rate bewoog zonder bijbehorende mint. Dit herkennen vereist het combineren van on-chain balansdata met contractlogica-review.
De negen maanden van geduldige opbouw voegen context toe die er doet toe voor het bewijzen van opzet. Net als het gebruik van Tornado Cash door de aanvaller om circa 7.400 ETH te sluizen voor de opbouwfase. De on-chain tijdlijn vertelt een verhaal van doelbewuste voorbereiding.
Het bredere risico
Elk Compound-fork protocol dat balanceOf() gebruikt in zijn exchange rate-berekening en supply caps alleen via mint() handhaaft, deelt exact dit aanvalsoppervlak. Als dat jouw protocol beschrijft, behandel het dan als een open kwetsbaarheid.
Venus heeft sindsdien collateral factors op nul gezet voor risicovolle assets en een multi-chain patch voorgesteld die een internalCash-variabele gebruikt in plaats van ruwe balanceOf()-aanroepen. De fix is eenvoudig. Het feit dat er een exploit van miljoenen dollars voor nodig was om het te triggeren is de meer ongemakkelijke les.