Skip to main content

Can a Reentrancy Attack Be Performed without a Fallback Function?

Yes, a reentrancy attack can be performed without a fallback function. Any external call from one contract to another can be a vector for reentrancy.

For example, if a contract calls a function on an external contract that the attacker controls, that function can be programmed to call back into the original contract. The vulnerability is not the fallback function itself, but the act of making an external call before updating state.

The fallback function is just a common and convenient way to trigger the re-entry when Ether is sent.

How Have Recent Versions of Solidity Changed the Behavior of Fallback Functions to Mitigate This Risk?
Does Co-Location Create a Two-Tiered Market between Those Who Can Afford It and Those Who Cannot?
Can a Smart Contract Function without an Oracle?
What Is a “Reentrancy Attack” in Smart Contract Security?