May 8, 2025
get_pt_price
instruction. Loopscale relies on this instruction’s output via cross-program invocation (CPI), in conjunction with Pyth oracle feeds, to calculate collateral value.
While the Loopscale protocol enforced program validations for Exponent PT tokens and RateX PT Loops, it failed to extend the same checks to non-Loop borrows collateralized by RateX tokens. This gap allowed the attacker to deploy a malicious program that spoofed the interface of a valid RateX market. The program returned an artificially inflated PT exchange rate via get_pt_price
, enabling the series of loans that effectively bypassed health checks.
This was a targeted technical exploit of a specific integration path, not a failure of Loopscale’s economic model or protocol architecture. The core order book logic and vault mechanics functioned as intended and were not compromised.
Time (UTC) | Activity | Transaction(s) |
---|---|---|
April 26 12:51 PM | Attacker swaps Monero for SOL to fund Wallet 1 (84dz…dA4V) via ChangeNow. | 5gUk…MkEb |
April 26 1:16 PM - 1:34 PM | Attacker swaps SOL for USDe and kySOL and mints PTUSDe and PTkySOL via RateX. | 5EFA…Te87, YLye…MctE, 3tcp…TNno, 5ckr…BMNh |
April 26 1:35 PM - 1:39 PM | Attacker transfers SOL, PTUSDe, and PTkySOL to Wallet 2 (C1Qy…prYT), the exploit wallet. | 3616…Fi4e, 2y5n…XgSd, hAyB…Pkh5 |
April 26 2:15 PM | Attacker swaps Monero for SOL to fund Wallet 2 via ChangeNow. | 7UZN…y65M |
April 26 2:44 PM - 3:17 PM | Attacker deploys test program (8iHA…oMyk) and exploit program (BdAD…KRbK). | c5fv…yH2n, 5Lrg…7Xxc |
April 26 3:28 PM | Attacker borrows 1,500,000 USDC. | 2Cti…rRrq |
April 26 3:29 PM | Attacker borrows 1,500,000 USDC. | 55dm…eH5Q |
April 26 3:30 PM | Attacker borrows 1,500,000 USDC. | Xxks…beub |
April 26 3:30 PM | Attacker borrows 1,226,725 USDC. | 2SkC…F2RJ |
April 26 3:31 PM | Attacker swaps 5,726,725 USDC for 38,261 SOL via Jupiter. | bR4Y…Lz7H |
April 26 3:32 PM | Attacker borrows 1,211.4 SOL. | 3Lck…ZvGP |
April 26 3:37 PM | Attacker transfers 39,474.5 SOL to Wallet 3 (4Qsq…HgCV). | 4uG4…igN7 |
April 26 3:47 PM - 4:23 PM | Loopscale disables new borrows from Vaults, disables new borrows from the protocol, and then pauses all protocol functionality. | |
April 26 3:52 PM | Loopscale creates war room with SEAL 911 via Telegram. | |
April 26 4:55 PM - 5:08 PM | Attacker swaps 10 SOL for ETH to fund Wallet 4 (0x05…038c) via ChangeNow and bridges a total of 15,000 SOL via Wormhole. | 3vLa…n8iJ, 4KHQ…1QU2, Fcaf…ahTH |
April 26 5:10 PM | Attacker initiates bridge of 20,000 SOL to Wallet 4 via Wormhole. | 5Xzy…Gm1e |
April 26 8:15 PM | Loopscale re-enables loan repayment and close-loop functionality. | |
April 27 4:38 AM | Attacker transfers 15,000 WSOL and 0.5 ETH to Wallet 5 (0xc9…7Fe8). | 0xed…8b85, 0x6e…2150 |
April 27 10:12 AM | Loopscale sends an on-chain message to Wallet 4. On-chain and email communications follow. | 0x6d…d646 |
April 27 6:54 PM | Attacker returns 5,000 SOL to Loopscale (0xc4…5329). | 0x4a…72f0 |
April 28 6:18 AM | Attacker returns 10,000 SOL to Loopscale. | 0x17…95ce |
April 28 7:03 PM | Attacker returns 4,463.95 SOL to Loopscale (stnD…JH4j). | 66Yq…axei |
April 29 7:16 PM - 7:33 PM | 20,000 SOL bridged transfer settles on Ethereum. Attacker returns settled funds, completing fund recovery. | 0xda…a110, 0xa9…7860 |
April 30 7:11 PM | Loopscale re-enables Advanced Lending management/withdrawals. | |
May 8 2:00 PM | Loopscale re-enables vault withdrawals following additional code reviews. |