Fantom Hack
Incident Overview
A validator wallet was drained for 250k FTM by an attacker during the node setup process on Fantom network. The problem is a go-opera code bug, allowing users to unlock the local account with http/ws enabled.
The attacker tracked the transfers to the node accounts, so he could know when and how much a validator account would receive, and taking advantage of the vulnerability, was able to steal money from the node validator. The vulnerability is in the UnlockAccount() function, in which the ExtRPCEnabled() flag does not work correctly, which makes the entire security check useless.
As the time of this writing information on this case is scarce. More sources will be added if the case should develop.
Incident Report
Protocol Information
Market Context at Time of Hack
What the Attacker Needed to Succeed
Understanding the prerequisites for this type of attack helps auditors identify protocols that are most at risk and helps developers build better defenses.
What Auditors Should Check
If you're auditing a protocol with similar architecture to Fantom, these are the critical security checks that could have prevented this incident (July 2022).
- Verify all logic paths related to Access Control are guarded by proper access controls and input validation - see the Access Control Attacks attack class for patterns
- Review privileged functions (owner, admin, governance) for potential abuse vectors - centralization risks should be documented and bounded with timelocks or multi-sigs
Master these auditing techniques with hands-on labs and real exploit scenarios in the Smart Contract Hacking course.
Free TrialRelated Attack Classes
The technique used in this hack maps to these vulnerability classes in our security curriculum:
Sources & References
-
01
Source 1 https://fantom.foundation/
Learn to Prevent the Next Fantom
The Fantom hack is one of many attacks that skilled auditors are trained to detect before deployment. Master real exploit patterns and defense techniques with hands-on Web3 security training.