Не один, а сразу два протокола децентрализованных финансов (defi) Agave и Hundred Finance стали жертвами атаки с «повторным входом».
Сообщается, что из обоих протоколов в сети Gnosis хакеру удалось вывести средства на сумму $11 млн во Wrapped eth, Wrapped btc, Chainlink, usdc, Gnosis и Wrapped XDAI. Злоумышленник использовал уязвимость с мгновенным кредитом.
Для непосвящённых «повторный вход» — это уязвимость в языке программирования Solidity, которая позволяет злоумышленнику обмануть смарт-контракт протокола, заставив его сделать внешний вызов к ненадёжному контракту. После того, как злоумышленник получает контроль над ненадёжным контрактом, он может делать рекурсивные вызовы исходной функции, чтобы вывести средства.
Исследователь блокчейна и безопасности Мудит Гупта сказал, что главным виновником являются официальные мосты на Gnosis, они «нестандартны и вызывают получателя токена при каждой передаче». Он добавил, что именно это позволяет проводить повторные атаки.
Agave — это форк кредитной платформы DeFi aave, а многосетевой кредитный проект Hundred Finance — форк Compound. Гупта добавил, что Compound не следует рекомендуемому шаблону проверки-эффекты-взаимодействия, несмотря на то, что ссылается на него.
Атаки с повторным входом становятся всё более распространёнными, поскольку «код выполняет взаимодействия перед применением эффектов». С другой стороны, Aave пытается следовать вышеупомянутому шаблону проверки-эффекты-взаимодействия. Однако существует путь через ликвидацию, с помощью которого злоумышленник «сломал шаблон» в недавней атаке.
В августе прошлого года популярная кредитная DeFi-платформа Cream Finance, кодовая база которой аналогична кодовой базе Compound, также пострадала от атаки с повторным входом на сумму $18,8 млн.