🧵1/ ⚠️ Analiza Eksploatacji: Strata 80 mln USD w ataku na Resolv Labs Dziś rano @ResolvLabs został zaatakowany z powodu awarii w swoim scentralizowanym mechanizmie walidacji parametrów. Zaledwie z kapitałem wynoszącym około 200 tys. USD, napastnik wyemitował 50 mln i 30 mln USR, używając po 100 tys. USDC, co doprowadziło do całkowitej straty wynoszącej około 80 mln USD. Po incydencie stablecoin $USR chwilowo stracił powiązanie, osiągając wartość 0,051 USD.
🧵2/ Mechanizm ataku Funkcja completeSwap w kontrakcie #TheCounter Resolv Labs pozwala na określenie ilości wyemitowanego $USR za pomocą parametru _targetAmount.
🧵3/ Funkcja completeSwap sprawdza, że adres wywołującego (msg.sender) musi posiadać SERVICE_ROLE. Oznacza to, że po złożeniu przez użytkownika transakcji wymiany, zespół projektu musi przeprowadzić scentralizowaną weryfikację parametrów, takich jak _targetAmount, i dopiero po potwierdzeniu poprawności wywołają tę funkcję, aby zakończyć transakcję. Na podstawie dwóch transakcji ataku, $100K USDC odpowiadało wartościom _targetAmount wynoszącym 50M i 30M USR, odpowiednio. Jest oczywiste, że mechanizm weryfikacji _targetAmount w projekcie zawiódł. Ponieważ weryfikacja _targetAmount jest scentralizowana i nie jest open-source, przyczyna źródłowa nie może być ustalona na tym etapie. Możliwości takie jak zaangażowanie osób z wewnątrz, kompromitacja scentralizowanego systemu lub wyciek prywatnego klucza SERVICE_ROLE nie mogą być wykluczone.
2/ Mechanizm ataku Funkcja completeSwap w kontrakcie #TheCounter Resolv Labs pozwala na określenie ilości wyemitowanego $USR za pomocą parametru _targetAmount.
2,12K