Sepolia升級出包,不明攻擊者觸發漏洞

在 Sepolia 上進行 Pectra 升級時,不明攻擊者引發了異常

以太坊開發人員表示,近期在 Sepolia 測試網路上進行的 Pectra 升級出現錯誤,一名攻擊者利用一個「邊緣案例」觸發漏洞,導致區塊鏈上持續挖掘空塊,使問題更加嚴重。

Pectra 於 3 月 5 日上午 7:29 在其最終測試網 Sepolia 上線,但以太坊開發者 Marius van der Wijden 在 3 月 8 日的貼文中表示,團隊隨即在他們的 geth 節點上看到了錯誤訊息,並觀察到網路開始挖掘大量空塊。

Van der Wijden 解釋,問題的根源在於存款合約觸發了錯誤的事件類型——本應觸發存款事件,卻意外觸發了轉帳事件。

儘管團隊隨後迅速推出了修補程式,但 Van der Wijden 表示,他們在修復過程中遺漏了一個邊緣案例,導致漏洞仍然存在。一名未知用戶隨即利用該漏洞,向存款地址發送零代幣轉帳,導致錯誤再次發生。

他說:「幾分鐘後,我們又看到了大量空區塊,於是我們再次檢查交易池,發現了另一筆觸發相同邊緣案例的違規交易。」

「最初我們以為這是某個受信任的驗證者在操作中發生了失誤,但很快我們意識到,這筆交易實際上來自一個剛剛通過水龍頭獲得資金的新帳戶。」

Van der Wijden 表示,ERC-20 標準並不禁止零代幣轉帳,這意味著即便用戶帳戶中沒有任何代幣,也可以向另一個地址進行轉帳,而這正是該未知用戶利用的攻擊手法。

「阻止攻擊的唯一方法是篩選出所有與存款合約交互的交易。所以我們做了私密修復程式,並將其部署到部分 DevOps 節點上。」

他補充道:「我們懷疑攻擊者正在監視我們的部分聊天記錄,因此我們決定不公開修復程式,而是僅更新我們掌控的幾個節點,以便在網路中產生更多完整區塊。」

到當天下午 2 點,所有節點均已完成修復更新,異常用戶的交易最終被成功挖出。

Van der Wijden 強調,儘管本次事件影響了 Sepolia 測試網的正常運行,但並未影響最終確認,且該問題僅限於 Sepolia 測試網,因為他們在該網路上使用了基於代幣的存款合約,而非正常的主網存款合約。

值得一提的是,早在 2 月 26 日,開發團隊便已在 Holesky 測試網進行了 Pectra 升級的前期測試,但遇到了類似問題。

因此,基於近期的測試經驗,開發團隊決定推遲 Pectra 升級的主網上線,直至完成更多測試以確保其穩定性。

Pectra 分叉是繼以太坊 Dencun 升級之後的又一次重大網路升級。Dencun 升級已於 2024 年 3 月 13 日正式上線,該升級大幅降低了以太坊 Layer-2 網路的交易費用,並優化了 Rollup 的經濟模型。