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







