BlockSec:以太坊分叉因Geth舊版本在處理預編譯合約調用時未考慮異常值的處理

BlockSec團隊發文稱,北京時間2021年8月27日20點50分左右(區塊高度13107518),以太坊突然出現分叉。 BlockSec通過分析Geth的代碼版本修改和這筆造成分叉的交易(0x1cb6fb36633d270edefc04d048145b4298e67b8aa82a9e5ec4aa1435dd770ce4)釐清了以太坊分叉的根本原因:Geth舊版本在處理預編譯合約調用時,並未考慮特殊情況(corner case)下參數值的處理,從而引發重疊拷貝(overlapping copy),導致返回值異常。該漏洞(CVE-2021-39137)已提交Geth官方,目前尚未披露細節,但攻擊者已經利用漏洞實施了攻擊。 BlockSec總結稱,通過對整個攻擊流程的梳理和Geth源代碼的分析,BlockSec認為根本原因在於Geth舊版本在處理預編譯合約的調用時並未考慮異常值的處理,導致攻擊者利用該漏洞實施了重疊拷貝,影響了返回值,最終導致分叉的出現。由於Geth是BSC、HECO、Polygon等公鏈的基礎,因此該漏洞影響範圍甚廣。目前各公鏈也先後推出了升級和補丁,BlockSec也呼籲各相關節點儘早升級打上補丁,以確保基礎設施的安全。

Total
0
Shares
Related Posts