взлом onyxdao и депег/репег $VUSD.
onyxdao — это лендинг платформа, на которой можно вносить (lend) крипту под % и занимать (borrow) другую крипту под залог.
днем 26 сентября
хакер ломанул onyxdao и вытащил $vusd и других монет на $3.8 млн по тому курсу
(tx взлома). затем начал лить в стакан и обрушил $vusd до 0.18$. наши друзья начали откупать по 0.2-0.25, суетились туда сюда и продали в x1.1. затем рост до 0.85$ и снова падение до 0.3$. сейчас команда вернула цену к 0.85$, хотя многие из нашего окружения предвещали крах. хакер налил в стакан на $1.5 млн в эфире и сейчас может зачиллиться на 5-10 лет, может и забудут про него, останется при своих еще и с возможными иксами. не рекомендуем ничего взламывать, но посмотрите на
статистику 🙈
техничка взлома.
хакер использовал precision manipulation attack — атаку, использующую уязвимость в расчете обменного курса. ошибка в расчете цены на контракте oETH при низкой ликвидности позволила хакеру искусственно завысить обменный курс. затем он использовал операции создания и погашения токенов (mint и redeemUnderlying, далее просто redeem), чтобы манипулировать курсом, а после воспользовался этим для получения выгодных займов.
1. атакующий получил flash loan* на 2000 ETH у
balancer.
2. 1999.5 ETH внес в контракт oETH, чтобы временно увеличить ликвидность и повлиять на расчет обменного курса.
3. оставшиеся 0.5 ETH перевел на
контракт rate manipulator.
4. (осторожно, здесь вся суть) контракт rate manipulator многократно (56 раз) вызывал функции mint() и redeem() с очень малым объемом токенов (< 0.00000001 oETH), чтобы искусственно завысить обменный курс. при вызове mint() хакер добавлял небольшое количество ETH, увеличивая количество oETH в обращении, а затем при вызове redeem() эти oETH обменивались на ETH. из-за ошибки в логике функции redeem() такие маленькие операции могли значительно повлиять на расчет обменного курса, что позволило хакеру завысить курс oETH.
5. после манипуляции курсом хакер смог занять средства с контрактов oXCN, oDAI, oBTC, oUSDT, и oVUSD, используя завышенный курс oETH как обеспечение.
6. затем хакер переводил все заимствованные средства на свой адрес с помощью вызовов функции transfer() и далее бил по стакану.
* flash loan - это мгновенный заем, который берется и возвращается в рамках одной транзакции, не требуя залога.
самое интересное, что после первого эксплойта и возвращения цены на 0.85 - произошел
второй такой же эксплойт и снова уронил цену до 0.3$. только в этот раз он много раз обменивал DAI, а не ETH. получил он 3.2 млн VUSD и налил в стакан на $130к, остальные 2.8 млн VUSD оставил и их в последствии
заблокировали VUSD девы
🥃
ссылка на контракт эксплойта для задротов.
домашка.
- be careful с хранением крипты в лендосах.
- учи солидити для поиска дыр и white хакинга (багбаунти).
[ links ] |
hodlmod |
nba