Here are three of the most common and critical DeFi smart contract vulnerabilities, along with specific methods to detect them during code review or audits.
1. Reentrancy Attacks
Description:
Reentrancy occurs when an external contract call is made before the state of the current contract is updated. A malicious contract can re-enter the vulnerable function before the state change is complete, allowing an attacker to drain funds by repeatedly calling the function before the balance is reduced.
Specific Detection Methods:
- State-Change-After-External-Call Pattern: Look for functions that interact with external contracts (via
call,delegatecall, ortransfer) before updating the internal state (e.g.,balances[msg.sender]).- Example of Bad Code:
solidity
function withdraw(uint amount) public {
require(balances[msg.sender] >= amount);
(bool success, ) = msg
Top comments (0)