Skip to main content
Web3Fire
securityadvanced

再入攻擊

一種漏洞,即合約在狀態更新完成前便重新執行自身,從而導致資金被盜。

entity.loading_intelligence

關鍵事實

類別security
難度advanced

概述

再進入攻擊(reentrancy attack)是一種利用合約在狀態更新完成前重新進入自身,從而盜取資金的攻擊手法。這正是著名的 DAO 駭客事件所利用的攻擊途徑,其利用了合約執行過程中狀態變更的順序。

運作原理

惡意合約會呼叫一個外部函式,該函式會在受害合約更新其狀態之前,使其重新進入自身。由於餘額直到執行結束才會更新,因此反覆呼叫會導致資金被盜。透過「檢查-效果-互動」機制及再入防護機制,可防止此類攻擊發生。

重要性

重入性是智慧合約中最危險的漏洞之一,曾造成重大損失。開發人員和審計人員必須充分理解此機制。現代框架已內建相關防護機制。

相關概念

重入性攻擊與智慧合約漏洞及審計相關。可透過編碼模式和防護機制加以防範。

知識圖譜

entity.loading_graph

entity.faq

entity.loading_faq

entity.related_comparisons

ARCHITECTURE V3 — Static Knowledge Shell · 297/297 Concepts · SSG · 0 D1