Hello, I’m learning and building in public.
Here’s what you’ll find on this account:
🤖 AI tools and experiments
📊 Manual trading insights and lessons
🌐 Web3 research and opportunities
🛡️ Occasional cybersecurity findings
No fake promises, paid signals, or unnecessary hype just tools, observations, experiments, and honest lessons.
Follow along if these topics interest you and welcome to my profile 🐰
Ostium just got drained for ~$18M USDC on Arbitrum. I decoded the full on-chain tx and it was NOT a single method. The hacker packed 2 attack vectors into 1 transaction.
Here's the breakdown, baby-talk → technical 👇
— THE SIMPLE VERSION —
Picture Ostium as a SHOP (the Vault) holding USDC from lots of people. The shop has a PRICE SCALE to value things that scale = the oracle / price feed.
The hacker messed with the scale:
1) Walks in with a FAKE "price slip" and hands it to the guard: "here's the latest price boss, write it down." The sneaky part the slip is stamped with a FUTURE date, so it looks valid, but the price is made up.
2) The guard trusts it. The scale updates with the fake price. Now the shop misreads what things are worth.
3) The hacker "buys/sells" on the broken scale open position, close position, back and forth. Trades that SHOULD lose instead look like WINS, so the shop pays out fake "profit."
4) Money flows out. Each loop grows: thousands → tens of thousands → hundreds of thousands → millions. ~$18M total siphoned out.
One sentence: the hacker fooled the price scale (via performUpkeep + future-dated timestamps), then profited off the fake-vs-real price gap (via delegateAction). 1 tx, 2 moves.
— THE TECHNICAL VERSION —
Outer method: executeBatch(address[],bytes[]) — one tx to the Ostium router. Inside the batch: 20 calls, 2 types.
• performUpkeep ×10 = the MAIN vector. Feeds manipulated oracle/tick data + future-dated timestamps into Ostium's automation system (the PriceUpKeep forwarder). Result: the vault's ShareToAssetsPrice updates with fake prices → mispricing.
• delegateAction ×10 → openPosition + closePosition (5× each). This is just the TOOL to monetize the mispricing. Big position, close, loop — each loop the tradeAmount grows, more USDC drained.
Root cause: performUpkeep accepts attacker-controlled data (price + timestamp) WITHOUT enough validation. delegateAction is only the getaway vehicle. Classic oracle/keeper manipulation — not a bug in the trading logic itself.
Context: part of a WAVE of oracle/keeper attacks hitting DeFi. Last week https://t.co/v56Mkfdv8x got hit for ~$6M with a similar pattern.
If you're a DeFi builder: audit your oracle timestamp & source validation NOW. 🫡
A Security Update: Trading remains paused following the security incident. User positions remain open and unmodifiable, and trader margin remains unmoved in frozen trading smart contracts. The team will continue to provide updates as they become available regarding a timeline both to the resumption of smart contract activity and the recovery of funds.
Over the past 14 hours, the team has been in continuous coordination with relevant authorities, SEAL 911, and multiple security researchers. Several teams are working full-time to track the movement of funds and support the investigation. We are thankful for the support of countless individuals who have assisted throughout.
We remain focused on resolving this incident around the clock and will share further status updates as soon as we are able.
@louszbd Agreed. Kimi looks especially strong at turning a rough idea into a polished first prototype.
The next test is whether it can maintain consistency as the codebase grows beyond the 0 to 1 stage.
@thsottiaux Interested! I use ChatGPT Work for research, content planning, and organizing technical projects.
I’d especially love better continuity across projects and more control over reusable context. Happy to test the early features and share detailed feedback.