SIR Hack

Reported loss $355K
Ethereum
Transient storage collision

What happened

On March 30, 2025, SIR (Synthetics Implemented Right), a leveraged-token protocol on Ethereum, lost about $355,000, which was reported as its entire TVL. The bug was in how the Vault contract used EIP-1153 transient storage to authenticate Uniswap V3 swap callbacks.

During a mint, the Vault wrote the expected Uniswap V3 pool address into transient slot 0x1 so that uniswapV3SwapCallback() could check msg.sender against it. Later in the same transaction the code wrote the mint amount into that same slot. After that, the callback's caller check compared msg.sender against a number the attacker could choose, not against the pool. The attacker picked a mint amount that matched a contract address they could deploy with CREATE2, then called the callback from that address and drained the vault's USDC, WBTC and WETH.

The stolen tokens were swapped to WETH through ParaSwap and Odos Router V2 and moved into the Railgun privacy protocol. The founder publicly offered the attacker a $100,000 bounty to return the rest, saying the self-funded project could not survive otherwise. No response had been reported by April 1, 2025.

Attack transaction: 0xa05f047ddfdad9126624c4496b5d4a59f961ee7c091e7b4e38cee86f1335736f Attacker: 0x27defcfa6498f957918f407ed8a58eba2884768c Vault: 0xb91ae2c8365fd45030aba84a4666c4db074e53e7

How it happened

  1. The attacker deployed their own ERC20 tokens and a Uniswap V3 pool for them, then initialized a new SIR vault market that used one of those tokens as collateral.
  2. They minted through the Vault. The mint path stored the pool address in transient slot 0x1, then overwrote the same slot with the mint amount (95759995883742311247042417521410689).
  3. That amount, read as an address, is 0x00000000001271551295307acc16ba1e7e0d4281. The attacker used CREATE2 to deploy a contract at exactly that address.
  4. The contract called uniswapV3SwapCallback() directly. The check msg.sender == TLOAD(0x1) passed, so the Vault treated the attacker as the legitimate pool and paid out USDC, WBTC and WETH.
  5. The proceeds were swapped to WETH and sent into Railgun.

Protocol details

Classification Protocol Logic / Exchange (DEX) / Access Control
Protocol Type Derivatives
Implementation language Solidity
Protocol links Website @leveragesir

Market Context at Time of Hack

Token Price at Hack $0.0156
Token Categories
BNB Chain Ecosystem

Security review history

Understand the attack patterns

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.