Sherlock AI heeft een kritieke kwetsbaarheid gerapporteerd in het @40acresFinance-protocol. Het 40acres-team heeft ons genereus toegestaan om de details openbaar te delen, zodat anderen van deze bevinding kunnen leren. Hier is hoe de kwetsbaarheid werkte: Ten eerste zijn veNFTs een speciaal type stem-escrowed ERC721-tokens die wekelijkse beloningen verdienen. 40acres geeft veNFT-houders directe toegang tot leningen op basis van de toekomstige opbrengst van hun veNFT. Elke lener's veNFT bevindt zich in een persoonlijk PortfolioAccount dat functionaliteit routeert via modulaire "facetten" met behulp van het diamond proxy-patroon. De exploit stelt een aanvaller in staat om hun onderpand (veNFT) terug te vorderen uit hun PortfolioAccount zonder de lening terug te betalen. Bekijk de aerodromeVote() functie hieronder. 40acres heeft een zeer coole functie die het leners mogelijk maakt om te stemmen met hun veNFTs die als onderpand in 40acres worden gehouden. De functie heeft het volgende probleem: Het loanContract-adres wordt niet gevalideerd, waardoor een kwaadwillende gebruiker een willekeurig contract kan specificeren. Dit contract kan worden goedgekeurd om de veNFT in het PortfolioAccount te controleren, waardoor de overdracht tijdens de vote() aanroep in het kwaadwillige loanContract mogelijk wordt. Aanvalstappen 1) De aanvaller implementeert een kwaadwillig contract dat transferFrom/safeTransferFrom aanroept om de goedgekeurde veNFT over te dragen. 2) De aanvaller roept portfolioAccount.aerodromeVote(maliciousContract, tokenId) aan. De portfolio fallback delegeert naar de facet, die geen invoervalidatie heeft en roept aan en draagt de veNFT terug over aan de aanvaller, ook al is de lening niet terugbetaald. Opmerking: De herhaling van de bug zorgt ervoor dat de leningspool wordt leeggehaald - het eenmaal doen is gewoon een lening nemen en je veNFT terug stelen. Impact Ongecoverde leningen door het systeem. Elke lener kan zijn eigen onderpand halverwege de lening terugvorderen, wat leidt tot volledige insolventie van de leningspool. Erkenningen Dank aan @defsec_, @vinica_boy en @onthehunt11_ voor hun hulp bij deze beschrijving. Belangrijk om te weten: Het 40acres-team ontdekte de bug en paste een oplossing toe vóór de lancering. Gedetecteerd door Sherlock AI Je kunt het originele probleem zoals gegenereerd door Sherlock AI in de volgende tweet zien. De run duurde 3 uur en 59 minuten van begin tot eind. Sherlock AI brengt beveiliging in het ontwikkelingsproces, scant commits en aanroeppaden vroeg, brengt snel hoog-impact fouten aan het licht en geeft auditors een duidelijker zicht op complexe systemen. In de praktijk betekent dat dat problemen zoals deze lang voor audits, beloningen of implementatie kunnen worden opgemerkt en opgelost. Probeer Sherlock AI vandaag nog voor jouw protocol.
Originele problemen zoals gegenereerd door Sherlock AI: Originele problemen zoals gegenereerd door Sherlock AI: Probeer Sherlock AI vandaag nog voor jouw team:
72,98K