Мглистый инцидент и раскрытие: ether.fi подвергся атаке, потери составили около 15,45 ETH; до публикации объявления «Мгла» заявила, что уже связалась с его командой для ответственного раскрытия.
Проблема кроется в функции solve() смарт-контракта AtomicQueue: в контракте отсутствует проверка того, что solver равен msg.sender, а также нет валидации подписи, регистрации или авторизации. Злоумышленник сначала через updateAtomicRequest() формирует вредоносный запрос, затем вынуждает адрес жертвы выступить в роли solver. После этого контракт вызывает finishSolve и выполняет want.transferFrom(solver, users[i], assetsToUser), тем самым выводя средства, используя ERC-20 лимит авторизации, ранее предоставленный жертвой.
Этот случай вновь напоминает: неограниченные или долго не отзываемые токен-авторизации часто превращаются в прямой «канал вывода средств», когда в контракте обнаруживается изъян в контроле доступа. После участия в DeFi следует регулярно проверять и отзывать неиспользуемые разрешения.
#DeFi安全 #etherfi #Web3安全
Проблема кроется в функции solve() смарт-контракта AtomicQueue: в контракте отсутствует проверка того, что solver равен msg.sender, а также нет валидации подписи, регистрации или авторизации. Злоумышленник сначала через updateAtomicRequest() формирует вредоносный запрос, затем вынуждает адрес жертвы выступить в роли solver. После этого контракт вызывает finishSolve и выполняет want.transferFrom(solver, users[i], assetsToUser), тем самым выводя средства, используя ERC-20 лимит авторизации, ранее предоставленный жертвой.
Этот случай вновь напоминает: неограниченные или долго не отзываемые токен-авторизации часто превращаются в прямой «канал вывода средств», когда в контракте обнаруживается изъян в контроле доступа. После участия в DeFi следует регулярно проверять и отзывать неиспользуемые разрешения.
#DeFi安全 #etherfi #Web3安全