Cointime

Download App
iOS & Android

SharkTeam: Analysis of the Tornado.Cash Proposal Attack

On May 20, 2023, Tornado.Cash experienced a proposal attack, resulting in the attacker profiting approximately $680,000.

SharkTeam conducted a technical analysis of the incident and summarized security measures to serve as a lesson for future projects, aiming to strengthen the security defenses in the blockchain industry.

1. Incident Analysis

Attacker Addresses:

· 0x092123663804f8801b9b086b03B98D706f77bD59

· 0x592340957eBC9e4Afb0E9Af221d06fDDDF789de9

Attacking Contracts:

· 0xAF54612427d97489707332efe0b6290F129DbAcb

· 0x03ecf0d22f9ccd21144a7d492cf63b471916497a

· 0x7dc86183274b28e9f1a100a0152dac975361353d(deployed contract)

· 0xc503893b3e3c0c6b909222b45f2a3a259a52752d (fake proposal contract)

Targeted Contract:

· 0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce

Proposal Transaction:

· 0x34605f1d6463a48b818157f7b26d040f8dd329273702a0618e9e74fe350e6e0d

Attack Transaction:

· 0x3274b6090685b842aca80b304a4dcee0f61ef8b6afee10b7c7533c32fb75486d

Attack Process:

(1) The attacker (0x59234095) initiated a proposal to the targeted contract (0x5efda50f) and claimed that it was a supplement to Proposal 16.

(2) However, the proposal actually contained an additional self-destruct function.

(3) Unfortunately, the community did not identify the issue within the proposal, and most members voted in favor of it.

(4) The attacker created multiple contracts to execute token transfers.

(5) The attacker (0x59234095) destroyed the proposal contract (0xc503893b) and its creating contract (0x7dc86183). Subsequently, the attacker redeployed the attack contract (0xc503893b) at the same address.

(6) After modifying the proposal contract, the attacker (0x59234095) executed the proposal and changed the locked token balance of the contracts they controlled to 10,000.

(7) Once the proposal execution was complete, the attacker (0x09212366) transferred the tokens to their own address, gaining ownership of the targeted contract.

Vulnerability Analysis:

Since the deployment contract (0x7dc86183) is deployed through create2, the fake proposal contract (0xc503893b) is deployed through create. After the two contracts are destroyed, because the bytecode of the deployment contract (0x7dc86183) has not changed, so reusing create2 deployment can be deployed to the same address, which is 0x7dc86183, and the attack contract is deployed using the create opcode, in the deployment contract ( 0x7dc86183) is destroyed, the nonce restores the initial value, so that the attack contract can be deployed to the same address 0xc503893b even when the contract is modified. And the execution of the proposal is called in the form of delegatecall, and the attacking contract can arbitrarily modify the value in the attacked contract.

Summary of the Incident:

The root cause of this incident was the community's failure to identify the risks within the proposal and to thoroughly verify the security of the proposal contract's code.

2. Security Recommendations

In response to the recent attack incident, it is important to follow the following guidelines during the development process:

1. When designing proposals, fully consider the security of the proposal mechanism and strive to minimize the risk of centralized control. Practical measures such as reducing the value of potential attacks, increasing the cost of acquiring voting rights, and raising the cost of executing an attack should be taken into account to ensure a well-designed proposal mechanism.

2. Before voting on a proposal, the community should carefully review the contract code for any potential backdoors or security vulnerabilities.

3. Prior to proposal approval, it is advisable to engage a third-party security audit firm to conduct a thorough security audit of the contract logic code.

About us

SharkTeam’s vision is to comprehensively protect the security of the Web3 world. The team is composed of experienced security professionals and senior researchers from all over the world. They are proficient in the underlying theory of blockchain and smart contracts, and provide services including smart contract auditing, on-chain analysis, and emergency response. It has established long-term cooperative relationships with key players in various fields of the blockchain ecosystem, such as Polkadot, Moonbeam, polygon, OKC, Huobi Global, imToken, ChainIDE, etc.
Official website: https://www.sharkteam.org/
Twitter: https://twitter.com/sharkteamorg
Discord: https://discord.gg/jGH9xXCjDZ
Telegram: https://t.me/sharkteamorg

Comments

All Comments

Recommended for you

  • Japanese listed company ANAP Holdings increased its holdings of Bitcoin by 127.73.

    according to market sources, Japanese listed company ANAP Holdings has disclosed an increase in its Bitcoin holdings by 127.73 coins. As of now, the company's total Bitcoin holdings have reached 1,346.58 coins, valued at approximately 118 million USD.

  • Changpeng Zhao: Binance Wallet now supports identifying malicious addresses; you will receive a warning if you transfer funds to them.

    Zhao Changpeng posted on Binance Plaza stating, "The cryptocurrency industry should be able to completely eradicate address poisoning attacks and protect users. All wallets should simply check whether the receiving address is a poisoned address and block the user.This is a blockchain query. Wallets should not even display these junk transactions anywhere. If the value of the transaction is very small, filter it out. Security alliances in the industry should maintain a real-time blacklist of these addresses so that wallets can check before sending transactions. Binance Wallet is already doing this. If a user tries to send to a malicious address, they will receive a warning.

  • Bitcoin spot ETFs saw a total net outflow of $189 million yesterday, marking the fourth consecutive day of net outflows.

     according to SoSoValue data, the total net outflow of Bitcoin spot ETFs is 189 million USD.The Bitcoin spot ETF with the largest single-day net outflow yesterday was Blackrock's ETF IBIT, with a single-day net outflow of 157 million USD. Currently, IBIT's total historical net inflow has reached 62.34 billion USD. The second is Fidelity's ETF FBTC, with a single-day net outflow of 15.2979 million USD. Currently, FBTC's total historical net inflow has reached 12.189 billion USD. As of the time of writing, the total net asset value of Bitcoin spot ETFs is 114.289 billion USD, with the ETF net asset ratio (market value as a proportion of Bitcoin's total market value) reaching 6.53%, and the cumulative historical net inflow has reached 57.076 billion USD.

  • BTC falls below $88,000

     market shows BTC fell below $88,000, currently at $87,997.85, 24-hour decline reaches 0.88%, market volatility is significant, please manage your risk accordingly.

  • The U.S. spot Ethereum ETF saw net inflows of $84.59 million yesterday.

     according to Trader T monitoring, the US spot Ethereum ETF had a net inflow of 84.59 million USD yesterday.

  • ETH breaks $3,000

     the market shows ETH breaking through $3000, currently at $3000.08, with a 24-hour decline of 0.38%. The market is highly volatile, please manage your risk accordingly.

  • Binance Wallet launches "secure auto-signature" service

     according to the official announcement, Binance Wallet has launched the "Secure Auto Sign" (SAS) service: it now supports mnemonic/private key wallets to trade on Binance Wallet (web version).

  • Circle minted 500 million USDC on the Solana network.

    according to Onchain Lens monitoring, Circle has minted 500 million USDC on the Solana network. Since October 11, Circle has issued a total of 18 billion USDC on the Solana network.

  • Sources familiar with the matter: JPMorgan Chase is considering offering cryptocurrency trading services to institutional clients.

    according to Bloomberg, as major global banks deepen their involvement in the cryptocurrency asset class, JPMorgan Chase is considering offering cryptocurrency trading services to its institutional clients. A knowledgeable source revealed that JPMorgan is evaluating what products and services its market division can offer to expand its business in the cryptocurrency field. The source stated that these products and services may include spot and derivatives trading.

  • Web3 data and AI company Validation Cloud completes $10 million in new round of financing

     Web3 data and AI company Validation Cloud announced a $10 million financing round from True Global Ventures. The company plans to use the funds to expand its AI products and achieve seamless access to Web3 data.