#情報 Sui Typus被盜

剛剛在Zzyzx Blockchain Club的DC開AMA,結果看到Typus被盜,大家馬上來研究是咋回事
可以從這邊找到被盜的交易: 0x9eda9afa0b42bf908766c42d02a549c271d7d0ae02c8c58c5075858f8f4d3b69
駭客地址: 0xc99ac031ff19e9bff0b5b3f5b870c82402db99c30dfec2d406eb2088be6c2194
找個有問題的其中一個交易來看: 6KJvWtmrZDi5MxUPkJfDNZTLf2DFGKhQA2WuVAdSRUgH
megapx
裡面可疑的就update_v2
megapx
價格被改為1 來看看實際上是怎樣 這是Typus開源的code:
megapx
update_v2裡面主要是呼叫「update_ 」這個function,來看看他做了啥
megapx
可以看到update_這個function是用來改oracle價格的 再回到update_v2,既然可以修改價格,蠻可怕的,那權限肯定很重要,來看看他怎麼做的吧? 他使用vector::contains(&update_authority.authority, &tx_context::sender(ctx));去檢查
megapx
可以看到這個contains可以去檢查是否sender是否在update_authority.authority的授權名單內 但問題來啦,這東西就只會回傳bool,實際上不會去abort交易,也就是沒啥用 要用的話要像這樣,至少要用assert或if+abort才會有效果
megapx
修改完價格後就爽爽用,先是價格更新,讓目標資產價格變很小,再來用剛更新的報價swap兌換token,然後轉給自己 補充Gemini分析: * 交易紀錄分析:
* 合約分析:
補充: 透過MVR找歷史版本發現,update_v2為version 5,於13.11.2024 UTC 08:17引入
另外整個攻擊時間花了約半個多小時,不短了,如果有發現異常應該能及時阻止。 此分析過程為Zzyzx Blockchain Club在10/15(三)的DC AMA中的討論內容 此文僅為我個人立場,有誤的話是我個人的問題,也歡迎糾正我 希望Typus能走出難關,也希望Sui生態能銘記教訓、更加茁壯
愛心
6
16
全部留言