Curated security research, vulnerabilities, advisories and tools for practitioners.

PaperTrade BBO Pricing Incident

Summary

PaperTrade reported manipulation attempts on 10–11 October 2026 targeting the Hyperliquid best bid and ask (BBO) used to price its synthetic positions. The project acknowledged the attempts on 11 October. The account examined in this analysis withdrew 1,279,106.191184 USDC more than it deposited. PaperTrade settled positions at the instantaneous BBO midpoint, while its profit haircut used a fixed reference notional. This linked large synthetic payouts to an influenceable quote without increasing the haircut percentage as position size grew.
Published
Collected

📦 Full-Text Content Snapshot

R2 Archive · Full Article Preserved129 lines · 13.7 KB
📄 Raw .md⬇️ Download .md

Published on: 2026-10-20 · Source: certik.com

Incident Summary

In the first operation, the initiating wallet received about 4.75 million USDT after the flash loan was repaid, while the voting deposits remained locked. On 24 October 2026, borrowed USDT bought enough X to capture two of X100's three Senate seats. That majority immediately authorized treasury trades through liquidity controlled by the executing contract. Selling the resulting X supplied the loan repayment and payout. Three main transactions paid recipients about 4.848 million USDT. Including two follow-on transactions, the legitimate pool's net USDT outflow reached about 4.849 million USDT. The central failure was the gap between the lasting exposure required to obtain governance control and the treasury value that control could reach.

The core mechanism is supported by historical transaction records. Tracing covers selected proceeds routes through the stated cutoff; the service destination is identified by an explorer label. x100 1 _Figure 1 — First transaction: financed stake becomes Senate authority, treasury value and recipient payout. Voting deposits remain frozen; payout follows lender repayment._

Addresses and Roles

All addresses below are on Ethereum. Roles describe observed accounts, not human identities.

AddressEstablished role
0x100a2c7f45fd48e217fdce72e658dc78fd43a100X token; six decimals
0x79f35a33fe2813414851c4ae8daeacd14d822a46Freezer: deposits, Senate authority and treasury
0xcd5762ac6013fa762782ac1797ab09152c1028e8Treasury DEX module
0x0d85edd90c94053fc5997551b1baa8a77aa02fa0Legitimate X/USDT pool
0x7ec2afdf3ec5964899894f8d58afa95cbb8ffd63First transaction sender and USDT recipient
0x37541fc4a6f1ec86889ba506f51dc39f2bedd10aFirst execution contract; retained X

Background

X100 users freeze X in the Freezer. The Senate ranks registered accounts by their current frozen balances, and two votes in a three-seat Senate can authorize treasury liquidity and exchange operations. Registration fees are separate from frozen deposits.

The Freezer holds treasury X alongside user deposits. After execution, it checks that enough X remains to cover frozen liabilities. A separate token-quantity cap limits market deployment; withdrawing liquidity positions frees room under that cap. Neither control independently establishes that treasury trades receive fair consideration.

Attack Flow

1\. Buy Senate control

At 14:11:47 UTC, the first transaction, in block 26,263,022 , borrowed 1,942,457.637245 USDT from Aave and bought about 38,200 X. Two helper accounts each froze 19,000.000001 X and paid a separate 100 X candidacy fee.

The prior second-ranked member held 19,000 X. Each new stake exceeded that balance by 0.000001 X, one raw unit, securing two seats. Voting used current rankings and execution required no waiting period, so the new majority executed in the same transaction. x100 2 _Figure 2 —Receipt log 37 records Proposal 7 executing with two supporting votes in a three-seat Senate. Historical stake and ranking records establish the seat acquisition._

2\. Convert authority into treasury value

The majority authorized an exchange of 400,000 X for about 35.68 USDT through liquidity established and controlled by the executing operation. The execution contract collected about 399,987 X, then sold about 131,703 X into the legitimate market for about 6.693 million USDT. x100 3 _Figure 3 —Receipt log 36 records the treasury exchange. Both tokens have six decimals. Position minting and collection records establish liquidity ownership._

Aave received about 1.943 million USDT , including a financing premium of about 971.23 USDT. The initiating wallet received about 4.75 million USDT , while the execution contract retained about 268,284 X. The frozen voting deposits remained locked: extraction proceeds repaid the loan without requiring an unfreeze. The settlement records show successive stages of the same funds; adding them would double-count the loss.

3\. Replace and reuse the authority

At 14:35:59, the second transaction used a 1.95 million USDT Morpho flash loan to establish two stakes of 19,000.000002 X, displacing the first pair. Five withdrawals of treasury liquidity positions returned about 50,000 X, freeing room under the cap before another self-dealing exchange. The recipient received about 96,382 USDT and 9,895 X after repayment.

At 14:40:47, the third transaction exercised the second operation's helper-held authority without acquiring new frozen stake. It used a 300 USDT flash loan and withdrew the large treasury liquidity position. Its final payout was about 1,909 USDT and 549,916 X. Historical calls show this operation using the helpers to propose and vote with the existing seats. Bitquery attributes that reuse to helper governance entry points lacking caller restrictions; this access-control explanation was not independently verified here. Different initiating wallets do not establish different human operators.

Two additional transactions followed at 14:40:59 and 14:41:23, adding about 168.61 USDT of net pool outflow. Both used one sender and consecutive nonces.

Core transactionRecipient USDT payoutLegitimate-pool net USDT outflow
First4,749,726.0969734,750,733.001112
Second96,381.88349196,381.884163
Third1,909.3587581,873.897121
Three-main total4,848,017.3392224,848,988.782396

The third payout also consumed earlier treasury USDT, explaining why it exceeds that transaction's pool decrease. Including the two follow-on transactions brings the five-transaction pool outflow to 4,849,157.396718 USDT. Borrowing, payouts, conversions and holdings overlap; unsold X is excluded from dollar valuation.

4\. Convert and move the proceeds

The first recipient converted about 4.75 million USDT into 2,022.016 ETH. A consolidator received the ETH plus pre-existing funds and forwarded four 400-ETH lots. At the 26 October, 01:20:23 UTC cutoff, the five reviewed holding addresses contained about 2,022.857 ETH , including small balances beyond the conversion proceeds.

The second recipient converted about 96,382 USDT into 40.908 ETH. Two relays sent about 40.900 ETH to an address Etherscan labels ChangeNOW Dep. The tracing record stops at that deposit; customer identity, downstream settlement and completed cash-out remain unproved. x100 4 _Figure 4 — Reviewed proceeds routes and pinned holdings. These overlap with payouts and pool outflow. ChangeNOW is a service label, not an attribution of customer identity._

Vulnerability

Governance-control value was badly decoupled from market and stake value. The acquired Senate majority extracted enough liquid value to repay its acquisition financing while voting stakes stayed locked.

For the first transaction, a conservative cash-cost estimate is 1.943 million USDT : the voting-token purchase, loan premium, net liquidity-seeding expense and gas. It credits no recovery value to locked or retained X and prices gas using the later observed ETH conversion. That is about 41% of the transaction's 4.751 million USDT net pool outflow.

Three design choices made this possible:

  1. New stake became immediate authority. _Freezer._stakeOf_ and _Senate._tally_ used current frozen balances and ranking. The proposal deadline was an expiry window; the reviewed execution path imposed no minimum delay. The two new accounts acquired a majority and executed immediately.
  2. Valid votes could authorize self-dealing trades. The DEX module checked permitted tokens and pool existence, then accepted the minimum return specified in the proposal. It did not independently enforce fair consideration or exclude executor-controlled liquidity. Formal authorization therefore allowed treasury value to leave on the operation's own terms.
  3. Quantity checks protected a narrower invariant. Covering _totalFrozen_ preserved recorded X liabilities, while withdrawing liquidity positions freed room under the market-deployment cap. Neither imposed a treasury-value loss ceiling. Separately, helper contracts exposed already-acquired authority to later use. x100 5 _Figure 5 — Local render of theexplorer-verified source : current ranking supplies the tally, and execution has no waiting-period check. Historical runtime identity was checked separately._

X100's voting deposits stayed locked while the authority they secured released enough treasury value to repay the loan.

Response and Recovery

No recovery or effective remediation is independently verified in the collected evidence. At the pinned cutoff, the legitimate pool held about 1.97 USDT , while three reviewed execution/payout locations held about 826,902 X. Those illiquid X balances have no reliable realizable dollar value from the depleted market.

The Freezer still covered recorded frozen liabilities, and the Senate still included the second operation's two contract-held seats. Only 0.000002 X of the observed deployment cap remained. The snapshot does not establish that governance was repaired.

Retrospective: The Price of Control

Other governance attacks put that relationship in perspective: what exposure was needed to gain control, what privileges followed, and how much value could be realized.

IncidentDateReported impact
BonkDAO6 July 20264.426 trillion BONK transferred, marked at approximately $19.3 million
Term Finance23 August 2026Approximately $8.46 million in ETH and USDC
Astroport / Neutron22 September 2026Approximately 9.4milliongrossassetvalue;9.4 million gross asset value;9.4milliongrossassetvalue;1.96 million liquid
Arkadiko22 October 2026Approximately $1.09 million for the Arkadiko drain

The cases and valuations are source-reported; their full attack sequences were not independently reconstructed here. The figures use different valuation bases; token marks do not establish realized proceeds.

Exposure. BonkDAO's reported return of voting tokens and Arkadiko's reported DIKO resale differ from X100's locked deposits. Acquisition capital and lasting exposure are distinct measures; complete net control costs were not independently reconstructed here. Term Finance reportedly acquired control through a governance-token wrapper with little minted supply, with execution after the voting period.

Privileges. The reported Astroport / Neutron sequence involved eleven contract-admin reassignments, followed by ten malicious migrations and drains. Arkadiko approved a privileged contract whose public withdrawal and mint functions lacked caller authorization. X100's majority instead authorized self-dealing treasury trades. The cases connect voting power to different asset-control privileges.

Realizable value. Only part of the stolen BONK was reportedly transferred to an exchange; a deposit does not establish a completed sale. X100 retained unsold X without a reliable realizable valuation. Arkadiko's USDA burn reduced unbacked supply without recovering collateral. Treasury token marks, minted supply and realized proceeds measure different things.

To keep up to date on the latest incident alerts and statistics, follow @certikalert on X, explore our incident dashboard, or read our latest analysis on certik.com.


📦 Full-Text Markdown Snapshot archived by Phying News · Original source: certik.com