What Role Does the CALL Opcode Play in Enabling Reentrancy?

The CALL opcode in the Ethereum Virtual Machine (EVM) is used to execute a message call to an external contract. When a contract sends Ether to another address, it uses a form of the CALL opcode.

Crucially, this opcode temporarily transfers control flow to the recipient contract. If the recipient is a malicious contract, it can use this moment of control to call back into the original contract's vulnerable withdrawal function, initiating the Reentrancy attack before the state is updated.

What Is a “Re-Entrancy Attack” and Why Is It a Common Smart Contract Vulnerability?
Why Must State Updates Occur before External Calls?
How Does a Reentrancy Attack Specifically Exploit Smart Contract Logic?
Can a Contract with a High Gas Limit Still Be Safe from Reentrancy?
How Does a Reentrancy Attack Relate to the DAO Hack?
Why Is Updating State before an External Call the Critical Part of the CEI Pattern?
How Is the Call Function in Solidity Related to Reentrancy?
What Is a Common Vulnerability Found in Smart Contract Code?

Glossar