北京時間2021年8月27日20點50分左右,以太坊突然出現分叉。我們通過分析Geth的代碼版本修改和這筆造成分叉的交易厘清了以太坊分叉的根本原因:Geth舊版本在處理預編譯合約調用時,并未考慮特殊情況下參數值的處理,從而引發重疊拷貝,導致返回值異常。該漏洞已提交Geth官方,目前尚未披露細節,但攻擊者已經利用漏洞實施了攻擊。我們認為及時的分析和披露是必要的,也希望我們的分析能夠為社區提供必要的理解和幫助。
攻擊分析
運用我們的在線分析工具,可以看出:
以太坊和IPFS的API服務供應商Infura已恢復運行:2月6日消息,以太坊和 IPFS 的 API 服務供應商 InfuraInfura 已恢復運行。Infura 于昨晚宕機,隨后確定了由大流量峰值引起的服務降級的根本原因,并于 2 月 6 日凌晨 3:23 解決此次事件。[2022/2/6 9:33:40]
圖一
這筆交易執行了一個精心構造的STATICCALL,攻擊者將addr設為0x04,inOffset為0,inSize為32,retOffset為7,retSize為32。
以太坊鏈上NFT銷售總額突破150億美元 創下歷史新高:金色財經報道,1月15日,據最新數據顯示,以太坊鏈上NFT銷售總額突破150億美元,創下歷史新高,本文撰寫時為15,205,103,276美元,鏈上交易數量為5,573,885筆,。2021年10月22日以太坊鏈上NFT銷售總額突破80億美元,11月14日突破90億美元,11月28日突破100億美元,12月17日突破110億美元,12月30日突破120億美元,2022年1月7日突破130億美元,1月13日突破140億美元,這意味著在不到三個月時間里,以太坊鏈上NFT總銷售額增長超過70億美元。[2022/1/15 8:50:42]
圖二
動態 | 加拿大政府推出以太坊區塊鏈資源管理器:據Cryptoslate報道,加拿大國家研究委員會發布了一款新型的Ethereum 區塊鏈資源管理器供公眾使用。該開發項目是世界上第一個國家建立資源管理器平臺的實例之一,新的區塊鏈資源管理器將用于為政府框架提供公共透明的信息,具體到贈款和捐款。[2018/8/24]
由于STATICCALL的目標地址是預編譯合約,所以會執行圖二中的RunPrecompiledContract。
圖三
圖四
根據圖三和圖四的代碼,可以看到預編譯合約0x04真正執行的邏輯只是簡單地把in返回。
圖五
圖六
圖五是STATICCALL的執行過程,753行是執行預編譯合約的入口,751行的args指向EVM的Memory中inOffset~inOffset+inSize這篇區域的指針,也就是說args指向Mem。
根據圖六以及前文對預編譯合約0x04的分析,我們可以知道753行的返回值ret是與args完全相同的指針,也指向Mem。
在1.10.7版本的Geth中:762行將ret指向的值賦給EVM的Memory中retOffset~retOffset+retOffset這篇區域,也就是將Mem的值賦給Mem,而由于ret是一個指向Mem的指針,這次Memory.Set修改了Mem的值,也就修改了ret所指的值。所以在第771行返回的ret已經不是預編譯合約執行結束時的ret了。在1.10.8版本的Geth中:增加了766行:ret=common.CopyBytes,將Mem中的值做了一次深拷貝賦給ret,那么在767行執行的Memory.Set只會修改Memory而不會修改ret,在771行返回的ret就是正確的ret。總結
通過對整個攻擊流程的梳理和Geth源代碼的分析,我們認為根本原因在于Geth舊版本在處理預編譯合約的調用時并未考慮異常值的處理,導致攻擊者利用該漏洞實施了重疊拷貝,影響了返回值,最終導致分叉的出現。由于Geth是BSC、HECO、Polygon等公鏈的基礎,因此該漏洞影響范圍甚廣。目前各公鏈也先后推出了升級和補丁,我們也呼吁各相關節點盡早升級打上補丁,以確保基礎設施的安全。
巴比特訊,NFT項目WeLikeTheRocks使用EtherRock廢棄的智能合約重啟,該項目通過巖石編號來控制稀缺性,允許任何人鑄造巖石.
1900/1/1 0:00:00在過去的幾天里,美國參議院的議員們都崩潰了,特別是在crypto領域方面。最近一項名為“美國投資法案”的立法被反復推敲,希望兩黨的意見可以達成一致.
1900/1/1 0:00:00巴比特訊,8月16日,中國電子信息產業發展研究院發布第25期賽迪全球公有鏈技術評估指數,對全球37條公有鏈從技術維度進行綜合考量并給出排名.
1900/1/1 0:00:00據Cointelegraph消息,俄羅斯中央銀行第一副行長SergeiShvetsov在周三接受采訪時表達該行對加密貨幣投資的擔憂,并警告投資者可能存在虧損風險.
1900/1/1 0:00:00SIMBAChain是一家總部位于美國印地安納州南本德市的專注于區塊鏈應用程序開發的技術公司,已完成由ValleyCapitalPartners領投的2500萬美元A輪融資.
1900/1/1 0:00:00據CoinDesk報道,由LendingClub前首席執行官RenaudLaplanche共同創立的貸款初創公司Upgrade完成1.05億美元的E輪融資,投后估值達到33.25億美元.
1900/1/1 0:00:00