北京時間2022年8月2日,CertiK安全團隊監測到NomadBridge遭受攻擊,導致了價值約1.9億美元的損失。
合約的問題在于在initialize()函數被調用的時候,“committedRoot”被設成了0x00地址。因此,攻擊者可以通過消息的驗證,將在橋合約中的代幣轉移。
攻擊步驟
①攻擊者調用process()函數開始攻擊。
②process()函數中調用了acceptableRoot(messages),這個函數檢查了被提交的root以及OptimisticTimeOut是否過期。
以太坊客戶端Geth發布v1.12.1版本:8月11日消息,以太坊Go語言客戶端Go Ethereum發布以太坊客戶端Gethv1.12.1,Go Ethereum表示這可能是其有史以來最大的維護版本。Go Ethereum建議所有用戶升級此版本。
Go Ethereum表示,即將到來的Cancun(坎昆)硬分叉的開發一直是本次發布周期的重點,雖然Gethv1.12.1尚未為Cancun做好準備,但該版本已針對EIP-4844 Shard Blob交易包含基本類型定義和狀態轉換邏輯,還為EIP-4844交易實現了一個全新的內存池——blobpool。blobpool尚未被p2p網絡使用,仍在坎昆開發網絡中進行測試。此外,Geth不再支持Rinkeby測試網(#27406)。[2023/8/11 16:20:15]
Alchemy Pay支持使用萬事達卡在其NFT Checkout功能中購買NFT:6月2日消息,加密貨幣支付提供商 Alchemy Pay 發文稱,其 NFT Checkout 已支持萬事達卡支付,用戶可通過 Alchemy Pay 的 NFT Checkout 功能購買 NFT。[2023/6/2 11:54:49]
③此時函數acceptableRoot(messages)返回了true,也就是說這條message就被批準了。這是因為0x0000在初始化過程中被設置為了true。
Ribbon Finance將向2月17日之前遷移的Friktion用戶發放空投:1月31日消息,鏈上結構化產品Ribbon Finance發推表示,將把SOL金庫在去年賺取的全部費用空投給在2月17日之前遷移到Ribbon Finance的Friktion用戶,且用戶需在SOL金庫存入至少1個月資金以獲得資格。[2023/1/31 11:37:53]
④當這條message被批準后,攻擊者即可從橋中轉移資金。
攻擊交易
攻擊示例:
○在MoonbeamBridge上轉移了0.01WBTC:https://moonscan.io/tx/0xcca9299c739a1b538150af007a34aba516b6dade1965e80198be021e3166fe4c
今日恐慌與貪婪指數為11,恐慌程度進一步加深:金色財經報道,今日恐慌與貪婪指數為11(昨日為14),恐慌程度進一步加深,等級仍為極度恐慌。
注:恐慌指數閾值為0-100,包含指標:波動性(25%)+市場交易量(25%)+社交媒體熱度(15%)+市場調查(15%)+比特幣在整個市場中的比例(10%)+谷歌熱詞分析(10%)。[2022/6/13 4:21:29]
○在EtheremBridge接受了100WBTC代幣轉移:https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460
漏洞分析
在Replica合約中,“committedRoot”被錯誤地初始化為0。
合約地址:https://etherscan.io/address/0x88a69b4e698a4b090df6cf5bd7b2d47325ad30a3
函數process通過調用函數acceptableRoot()確保messagehash能通過驗證。
函數acceptableRoot()會檢查root是否已經被proven,processed或者confirmed。
然而在初始化的交易中0x53fd92771d2084a9bf39a6477015ef53b7f116c79d98a21be723d06d79024cad,owner傳入了0x00并且它對應的`confirmAt`也會在初始化中被設為1。
因此0x00可以被當作一個`acceptableRoot`,這也可以在replica合約中查詢到https://etherscan.io/address/0xb92336759618f55bd0f8313bd843604592e27bd8。
Prove函數的實現導致了一條unprovenmessage的root是0,而0作為一個有效的confirmedroot可以通過require的檢查。攻擊者只需調用process函數就能從橋中轉移資金。
資金去向
大約價值1.9億美元的代幣從橋合約中轉移出去。
https://defillama.com/protocol/nomad?denomination=USD
寫在最后
由于該問題是由部署參數中的錯誤引起的,我們假設所有的部署和配置都是正確的,那么在傳統的審計中確實很難發現該問題。然而,在包含驗證部署過程等更廣泛的審計過程中,是可以有效指出該問題的。
CertiK可提供部署階段后的附加服務——合約驗證,其中包括對智能合約的分析和部署后合約驗證的深入分析。
市場觀點 宏觀流動性 貨幣流動性整體緊縮。本周三公布的美國7月CPI數據8.5%好于預期的8.7%,較前值的9.1%大幅回落,預示著美國通脹峰值或許已經過去.
1900/1/1 0:00:00據官方消息,6月17日,波場聯合儲備在波場網絡上增加了3億枚USDC供應,USDC在波場鏈上的流通量現已超28.8億枚,創下新里程碑.
1900/1/1 0:00:00據全球最大的DeFiTVL聚合器DefiLlama最新數據,波場TRON已成為TVL全球排名前三的公鏈,當前TVL近52億美元,排名第一和第二的分別是以太坊和BNBChain.
1900/1/1 0:00:008月11日晚8點,格林納達常駐世界貿易組織代表、特命全權大使、波場TRON創始人孫宇晨先生閣下在BinanceLive平臺,就“創業十年.
1900/1/1 0:00:00原文作者:EthanLippman原文標題:ProductPrinciplesforNon-FinancialDecentralizedApplications 去中心化應用的現狀 對Web3的.
1900/1/1 0:00:00實驗環境 兩條平行鏈-鏈A(2008)和鏈B(2009) 一條中繼鏈 實驗目的 通過orml-xcm打開鏈A和鏈B之間的hrmpchannel 前提準備 平行鏈代理賬戶需要一定的中繼鏈token.
1900/1/1 0:00:00