attack analysis
attack analysis
According to the transaction records, the attack can be traced. The attacker used two addresses, Attacker A (https://etherscan.io/address/0x092123663804f8801b9b086b03b98d706f77bd59) and Attacker B (https://etherscan.io/address/0x592340957ebc9e4afb0e9af221d06 fdddf789de9)
Transaction record query: https://etherscan.io/tx/0x65fa5b475f34a954a10f88f2c84f316a048a0e67d273c7abb098717b1a4a46a3
The code of the malicious proposal is stored at the following address: https://etherscan.io/address/0x c 503893 b 3 e 3 c 0 c 6 b 90922 2b 45 f 2 a 3 a 259 a 5275 2d#code.
The attacked contract is TornadoVault (https://etherscan.io/address/0x 2 f 50508 a 8 a 3d 323 b 91336 fa 3 ea 6 ae 50 e 55 f 32185 #code).
The specific attack steps are as follows:
1. AttackerB creates a malicious proposal 0x c 503893 b 3 e 3 c 0 c 6 b 90922 2b 45 f 2 a 3 a 259 a 5275 2d
2. Attacker B submits deceptive proposal #20
3. Attacker A operates multiple accounts to lock 0 TORN tokens
4. Spoofed users vote on proposal #20
5. After reaching the number of votes, the attacker launches an attack
Destroy old proposals. Attacker B calls the emergencyStop function to destroy the old proposal at address 0xC50389. https://etherscan.io/tx/0xd3a570af795405e141988c48527a595434665089117473bc0389e83091391adb
Update the proposal contract. Attacker B creates a new contract on the same address 0x C 50389. Transaction: https://etherscan.io/tx/0xa7d20ccdbc2365578a106093e82cc9f6ec5d03043bb6a00114c0ad5d03620122
Prove of Concept
Test file: https://github.com/MetaTrustLabs/SmartContractAttackPoC/blob/main/test/TornadoCash
This test simulates the steps of an attacker creating a malicious contract, destroying the contract, and simultaneously creating a new contract at the same address.
6. Token transfer
Attacker B transfers tokens to Tornado. Cash: Governance Staking
Attacker A transfers tokens to an account controlled by the attacker
first level title
security analysis
The root cause of this governance attack can be attributed to two aspects: the malicious proposal was passed, and the proposal contract was destroyed by the attacker and recreated at the same address.
First, attackers lure voters into misjudging the situation by creating malicious proposals, causing voters to approve them without fully understanding their potential risks. This misleading characterization may hide the true intent of the attack, misleading voters into believing the proposal is beneficial or harmless.
Second, the attacker took steps to destroy the original proposal contract and recreated a new proposal contract at the same address. By calling the emergencyStop function, the attacker successfully destroyed the logic of the original proposal, making the execution result of the proposal no longer meet expectations. This behavior provides an opportunity for attackers to take control of governance and lays the foundation for subsequent attacks.
The combination of these two factors allowed an attacker to successfully carry out a governance attack and seize control of Tornado Cash. The passing of the malicious proposal and the destruction and reconstruction of the proposal contract paved the way for the attacker to use the controlled governance rights for further operations.
This incident highlights the importance of security and risk management in the process of decentralized governance. Developers and the community should strengthen the review of the proposal to ensure that the description of the proposal is accurate and transparent. At the same time, the security review of the contract should be strengthened to prevent attackers from exploiting loopholes and malicious operations. In addition, users and voters also need to evaluate the content of proposals more carefully and prudently, and ensure that they understand their potential risks and consequences.
first level title
About Us
MetaTrust is the world's leading provider of Web3 AI security services and audit services. We provide developers and project parties with a wealth of AI security tools, security audits and platforms, allowing developers to efficiently protect project and contract security. Build Fast, Stay Secure.
