Raydium AMM Hack
Incident Overview
The private key of the Pool Owner account was compromised.
The attacker drained nine Raydium’s constant product liquidity pools having stolen crypto worth around 4.4m USD.
The affected pools are ETH-USDC, RAY-SOL, RAY-USDC, RAY-USDT, SOL-USDT, SOL-USDC, stSOL-USDC, UXP-USDC, ZBC-USDC.
The funds draining was performed through repeatedly calling the withdrawPNL function that allows to withdraw fees from the pools. The expected fees to be withdrawn were increased with the SetParams and AmmParams::SyncNeedTake functionality.
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 Raydium AMM, these are the critical security checks that could have prevented this incident (December 2022).
- Verify all logic paths related to Private Key Compromised (Unknown Method) / 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
Learn to Prevent the Next Raydium AMM
The Raydium AMM 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.