Sherlock AI zgłosił krytyczną lukę w protokole @40acresFinance. Zespół 40acres hojnie pozwolił nam na publiczne udostępnienie szczegółów, aby inni mogli się uczyć z tego odkrycia. Oto jak działała ta luka: Po pierwsze, veNFT to specjalny typ tokenów ERC721, które są zablokowane w głosowaniu i zarabiają tygodniowe nagrody. 40acres daje posiadaczom veNFT natychmiastowy dostęp do pożyczek na podstawie przyszłych przychodów ich veNFT. Każdy veNFT pożyczkobiorcy znajduje się w osobistym PortfolioAccount, który kieruje funkcjonalność przez modułowe „aspekty” przy użyciu wzorca proxy diamentowego. Eksploatacja pozwala atakującemu na odzyskanie swojego zabezpieczenia (veNFT) z PortfolioAccount bez spłacania pożyczki. Sprawdź funkcję aerodromeVote() poniżej. 40acres ma bardzo fajną funkcję, która pozwala pożyczkobiorcom głosować swoimi veNFT, które są trzymane jako zabezpieczenie w 40acres. Funkcja ma następujący problem: adres loanContract nie jest weryfikowany, co pozwala złośliwemu użytkownikowi na określenie dowolnego kontraktu. Ten kontrakt mógłby być zatwierdzony do kontrolowania veNFT w PortfolioAccount, co umożliwia jego transfer podczas wywołania vote() w złośliwym loanContract. Kroki ataku 1) Atakujący wdraża złośliwy kontrakt, który implementuje wywołanie transferFrom/safeTransferFrom do transferu zatwierdzonego veNFT. 2) Atakujący wywołuje portfolioAccount.aerodromeVote(złośliwyKontrakt, tokenId). Fallback portfolio deleguje do aspektu, który nie ma walidacji wejściowej i wywołuje oraz transferuje veNFT z powrotem do atakującego, mimo że pożyczka nie została spłacona. Uwaga: Powtarzanie błędu powoduje opróżnienie puli pożyczkowej - zrobienie tego raz to tylko wzięcie pożyczki i kradzież swojego veNFT z powrotem. Wpływ Nie zabezpieczone pożyczki w całym systemie. Każdy pożyczkobiorca może odzyskać swoje zabezpieczenie w trakcie pożyczki, co prowadzi do całkowitej niewypłacalności puli pożyczkowej. Podziękowania Dziękujemy @defsec_, @vinica_boy i @onthehunt11_ za pomoc w tym opisie. Ważne do wiedzenia: Zespół 40acres odkrył błąd i zastosował poprawkę przed uruchomieniem. Wykryte przez Sherlock AI Możesz zobaczyć oryginalny problem wygenerowany przez Sherlock AI w następnym tweecie. Cała operacja zajęła 3 godziny 59 minut od początku do końca. Sherlock AI wprowadza bezpieczeństwo do procesu rozwoju, skanując commity i ścieżki wywołań na wczesnym etapie, szybko ujawniając poważne błędy i dając audytorom lepszą widoczność w złożonych systemach. W praktyce oznacza to, że takie problemy mogą być wykrywane i rozwiązywane znacznie przed audytami, nagrodami lub wdrożeniem. Wypróbuj Sherlock AI dla swojego protokołu już dziś.
Oryginalne problemy wygenerowane przez Sherlock AI: Oryginalne problemy wygenerowane przez Sherlock AI: Wypróbuj Sherlock AI dla swojego zespołu już dziś:
32,13K