Flash Loan Attack Seizes Two Governance Seats: What X100's Exploit Means for the Industry

ETH
USDT
DeFi SecurityDAO GovernanceGovernance AttackX100Fund TheftFlash Loan
5 hours agoSource: blockweeks.com
Flash Loan Attack Seizes Two Governance Seats: What X100's Exploit Means for the Industry


Original | Odaily Planet Daily (@OdailyChina)

Author | Asher (@Asher_0210)

Flash Loan Seizes Two Governance Seats, What Does the X100 Exploit Teach the Industry?

On October 24, the Ethereum DeFi project X100 suffered a governance attack, with approximately 4.85 million USDT stolen. According to GMGN data, the market cap of the X token fell from about $760 million before the attack to about $24 million, a single-day drop of over 96%.

Flash Loan Seizes Two Governance Seats, What Does the X100 Exploit Teach the Industry?

A treasury originally managed jointly by three "Senate" seats was taken over by a hacker who used funds borrowed via flash loan to capture two of the three seats. With a majority of votes in hand, the hacker submitted a malicious proposal, then used the seats they controlled to vote it through, causing the treasury to approve a transaction that sent assets to themselves. After the first round of attack succeeded, other attackers successively exploited the same governance mechanism to continue transferring project assets away.

Below, Odaily Planet Daily will review the entire process of this governance attack, as well as the DAO governance security risks exposed behind the X100 incident.

Borrowing $1.94 Million, How Did the Hacker Capture Two "Senate" Seats?

X100's treasury is managed by a three-seat "Senate" called Senate, whose members vote to decide operations such as selling treasury tokens and deploying liquidity. As long as two of the seats are controlled, proposals can be passed and treasury assets mobilized. Holders deposit the project token X into the Freezer contract, choose to freeze it for one, three, or five years, and then pay a 100 X registration fee to participate in the election. The three seats are ranked in real time according to the current frozen balance of the participating addresses, and the top three obtain governance rights.

This mechanism does not restrict the same controller from obtaining seats through multiple addresses, nor does it set a waiting period for governance rights to take effect. An attacker only needs to make the frozen balances of two controlled addresses simultaneously enter the top three to immediately grasp a majority of votes; a passed proposal can also be executed immediately, allowing seat capture and asset transfer to be completed in the same transaction.

Before the attack, the second-seat address had frozen about 19,000 X. At 22:11 on October 24, the hacker borrowed about 1.94 million USDT via an Aave flash loan, purchased X, and distributed it to two auxiliary contracts to complete freezing and election campaigning respectively. Each contract froze 19,000.000001 X, only one-millionth of a token more than the original second seat, yet simultaneously occupied the second and third seats, pushing the original second seat out of the governance list.Flash Loan Seizes Two Governance Seats, What Does the X100 Exploit Teach the Industry?

After obtaining a majority of votes, how did the hacker make the treasury assets flow into their own hands?

Two Yes Votes Let the Treasury Sell 400,000 X for $35.68

After securing two seats, the hacker immediately submitted a malicious proposal requiring the treasury to sell 400,000 X into a PancakeSwap V3 X/USDT pool created by the hacker, with the minimum received amount set to zero, and then voted in support through another controlled contract, allowing the proposal to pass with two votes and be executed immediately. According to GoPlus analysis, X100 allows governance proposals to specify the trading pool but lacks effective minimum transaction amount protection. The hacker could both decide where the treasury sold tokens and set the transaction conditions themselves, then approve the transaction with the majority votes they controlled.

The above pool was created by the hacker in the same transaction, with only about $100 of liquidity injected. When the treasury sold 400,000 X into it, the pool could only pay a small amount of USDT, and because the minimum received amount was zero, the transaction did not fail due to excessively low returns. Ultimately, the treasury handed over 400,000 X and received only about $35.68 in return. The hacker then withdrew the liquidity from the self-created pool, retrieved the X therein, and sold part of the tokens into the existing Uniswap V3 X/USDT trading pool in exchange for USDT. After repaying the flash loan and other expenses, the first hacker profited about 4.75 million USDT.

From borrowing funds to buy tokens and seizing seats, to approving the treasury's low-price token sale and cashing out to repay the loan, everything was completed in the same transaction. The tokens handed over by the treasury became the hacker's chips for cashing out, while the USDT in the real trading pool was used to repay the loan and converted into attack proceeds.

Subsequent Attacks Occurred One After Another, Where Did the Stolen Funds Flow?

About 24 minutes after the first attack, a second hacker once again seized two governance seats via flash loan, removed part of the Uniswap V3 liquidity positions held by Freezer, and used a self-created trading pool to continue transferring assets away, obtaining about 96,400 USDT. About five minutes later, a third wallet exploited an auxiliary contract left by the second hacker that did not restrict callers, directly borrowing its governance seats to pass a proposal and transfer away about 550,000 X. The first two rounds of attacks caused a total loss of about 4.85 million USDT, and the third round transferred away another about 550,000 X; the three rounds of attacks occurred in less than half an hour.

According to Bitquery tracking, the first hacker converted the main USDT proceeds into ETH within minutes after the attack, then dispersed them to five wallets, totaling about 2,022.86 ETH. The second hacker converted USDT into ETH and routed it through intermediary addresses to ChangeNOW, with the entire transfer process taking about 21 minutes.

Once governance authority was lost, asset transfer quickly evolved from the first hacker's single attack into successive siphoning by multiple wallets. Later participants did not even need to buy tokens again to campaign; they could use existing authority to continue transferring assets away.

An On-Chain World Where the Cost of Governance Attacks Is Increasingly Lower

X100 is not an isolated case, and governance attacks do not necessarily require hackers to invest huge funds in advance. Attackers can either buy tokens to obtain voting rights or exploit low proposal thresholds to look for opportunities, while flash loans further allow borrowed funds to participate in governance power grabs.

Since the beginning of this year, similar governance attacks have repeatedly caused large losses. In July, the Bonk DAO attacker spent about $4.09 million to purchase tokens accounting for 1.003% of supply, just exceeding the governance approval threshold, then transferred away about $20.5 million in assets through a malicious proposal, and even retrieved the staked tokens after voting ended. In August, Term Finance lost about $8.5 million due to a governance attack. Even if millions of dollars are needed to buy voting rights, this money may not be the cost ultimately borne by the attacker.

The threshold for some attempted attacks was even only a few hundred dollars. In March this year, a Moonwell attacker spent only about $1,808 to purchase MFAM and self-delegate, then submitted a malicious proposal attempting to obtain management rights over seven lending markets and core contracts involving about $1.08 million in user funds. In September, an Olas attacker spent only about $135 to lock 5,100 OLAS, exceeding the proposal threshold. Although both attacks were intercepted, they show that attackers do not necessarily need to hold a majority of votes; merely obtaining proposal eligibility may create attack opportunities.

On October 22, Arkadiko also suffered a governance attack. The attacker purchased enough DIKO, single-handedly voted through a proposal introducing a malicious contract, with no opposing votes during the process, and the estimated loss was about $1.09 million.

Governance rights can be borrowed, and assets can be transferred away once a vote passes. When control over a treasury changes hands so easily, who can so-called decentralized governance actually protect?



Source link