Согласно мониторингу рисков безопасности Beosin EagleEye, мониторингу платформы раннего предупреждения и блокировки компании Beosin, занимающейся аудитом безопасности блокчейна**, был атакован контракт LibertiVault в цепочке Polygon, что привело к потере около 123 ETH и 56 234 USDT на сумму около 290 000 долларов США. , а цепочка Ethereum 35ETH и 96223USDT стоит около 160 000 долларов США, что в сумме превышает 450 000 долларов США. **Технический персонал проанализировал и обнаружил, что эта атака была вызвана уязвимостью повторного входа в контракте LibertiVault.
Злоумышленник занял 5 миллионов долларов США с помощью флэш-кредита и вызвал функцию депозита контракта LibertiVault для залога.Логика залога будет использовать часть заложенных токенов для обмена, а затем рассчитает количество отчеканенных монет. отчеканенные монеты основаны на контракте и депозите Расчет основан на соотношении суммы депонированных токенов к балансу до депонирования контракта.
Операция обмена вызовет контракт хакера.В это время хакер повторно вводит депозит вызова в первый раз и повторно вводит эту функцию во второй раз, внося 2,5 миллиона долларов США в контракт.
После второго повторного входа контракт будет чеканить монеты для хакера в соответствии с соотношением 2,5 млн USDT к балансу USDT предыдущего контракта.После выполнения функции депозита первого повторного входа хакер вносит еще 2,5 млн USDT. внутрь.
На этом операция обмена в функции внешнего депозита завершена, и контракт будет чеканить монеты в соответствии с соотношением 2,5 миллиона долларов США к балансу контракта в долларах США.
Проблема кроется в четвертом пункте.По логике вещей, второй расчет остатка контракта должен быть предыдущим остатком плюс 2,5 млн введенных впервые в качестве параметра для этого расчета, а вот в виде повторный вход, баланс контракта был получен в самом начале, поэтому параметры не изменились, а исходный баланс по-прежнему используется для расчета, в результате чего хакеры чеканили большое количество ваучерных токенов.
Наконец, хакер удалил токены и вернул флэш-кредит для получения прибыли.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Анализ атаки на контракт LibertiVault на цепочке полигонов
Согласно мониторингу рисков безопасности Beosin EagleEye, мониторингу платформы раннего предупреждения и блокировки компании Beosin, занимающейся аудитом безопасности блокчейна**, был атакован контракт LibertiVault в цепочке Polygon, что привело к потере около 123 ETH и 56 234 USDT на сумму около 290 000 долларов США. , а цепочка Ethereum 35ETH и 96223USDT стоит около 160 000 долларов США, что в сумме превышает 450 000 долларов США. **Технический персонал проанализировал и обнаружил, что эта атака была вызвана уязвимостью повторного входа в контракте LibertiVault.
Злоумышленник занял 5 миллионов долларов США с помощью флэш-кредита и вызвал функцию депозита контракта LibertiVault для залога.Логика залога будет использовать часть заложенных токенов для обмена, а затем рассчитает количество отчеканенных монет. отчеканенные монеты основаны на контракте и депозите Расчет основан на соотношении суммы депонированных токенов к балансу до депонирования контракта.
Операция обмена вызовет контракт хакера.В это время хакер повторно вводит депозит вызова в первый раз и повторно вводит эту функцию во второй раз, внося 2,5 миллиона долларов США в контракт.
После второго повторного входа контракт будет чеканить монеты для хакера в соответствии с соотношением 2,5 млн USDT к балансу USDT предыдущего контракта.После выполнения функции депозита первого повторного входа хакер вносит еще 2,5 млн USDT. внутрь.
На этом операция обмена в функции внешнего депозита завершена, и контракт будет чеканить монеты в соответствии с соотношением 2,5 миллиона долларов США к балансу контракта в долларах США.
Проблема кроется в четвертом пункте.По логике вещей, второй расчет остатка контракта должен быть предыдущим остатком плюс 2,5 млн введенных впервые в качестве параметра для этого расчета, а вот в виде повторный вход, баланс контракта был получен в самом начале, поэтому параметры не изменились, а исходный баланс по-прежнему используется для расчета, в результате чего хакеры чеканили большое количество ваучерных токенов.
Наконец, хакер удалил токены и вернул флэш-кредит для получения прибыли.