
AI and Blockchain Security Researcher. ex @Quantstamp, @Zircuit
Joined January 2017
- Tweets780
- Following1.3K
- Followers896
- Likes1.1K
Pinned Tweet
On Feb 17 2025 I reported a critical vulnerability to @Scroll_ZKP. $100m+ in TVL was at risk for more than 2 months.
Anyone could force Scroll L2 into an indefinite re-org, halting the chain so that no user transactions would be included in blocks and the chain would not move forward. All funds on L2 would be frozen.
@Scroll_ZKP downplayed the report. There was no meaningful communication about the issue—only continuous ghosting and silence. The @immunefi team mediated, yet did not correctly classify the vulnerability, which clearly falls under "Primacy of Impact." When I requested a re-evaluation, I received no response.
As a result, I am disclosing this to the public to highlight Scroll's lack of security proficiency, their unfair resolution process, and their treatment of white-hats.
You can find the link to the full report and complete timeline below.
@redhairshanks86 @0xBalloonLover @Wublockchain @coindesk @cointelegraph @TheBlock__ @aave @EtherFi @ambient_finance @l2beat
Full impact of the issue:
- The Scroll chain can be halted deliberately at zero cost to the attacker.
- Withdrawals remain blocked for the duration of the attack (potentially indefinitely, as it is free to sustain).
- Halted block production prevents critical time-dependent DeFi actions (e.g., topping up positions to avoid liquidation, oracle price updates), putting user funds at risk.
- The sequencer stops collecting transaction fees because no L2 user transactions can be included in blocks.
- Anyone on the internet can trigger the attack, and Scroll has no preventative measures.
---
Timeline
- **Feb 17 2025** – Issue submitted on Immunefi.
- **Feb 18 2025** – Scroll claims the issue was known from a Trail of Bits audit 14 months earlier and says it will be fixed in the Euclid upgrade (still 2+ months away). Scroll closes the report.
- **Feb 18 2025** – I request Immunefi triage, providing code commits that show Scroll attempted—but failed—to fix the issue. I emphasize that, while the attack vector is similar, the impact and exploitation mechanism are different.
- **Feb 24 2025** – Immunefi reopens the report for discussion with Scroll.
- **Feb 27 2025** – Immunefi asks Scroll for an update.
- **Mar 03 2025** – I contact Scroll to stress that the issue is public and exploitable on the live protocol.
- **Mar 03 2025** – I DM @yezhang1998 on Twitter about the Immunefi report.
- **Mar 04 2025** – Scroll says the issue is out of scope, labeling it "Throttling or suppression of operations without loss of user funds," and notes a similar report from Nov 06 2024.
- **Mar 04 2025** – I request Immunefi mediation to confirm the submission's uniqueness and ensure a fair bounty.
- **Mar 13 2025** – I ask Immunefi for an update.
- **Mar 17 2025** – Immunefi classifies the issue as **High severity** ("causing network processing nodes to handle transactions from the mempool beyond set parameters"). They confirm the bug is unique, acknowledge Scroll's attempted fix was ineffective, and suggest a goodwill bounty because Euclid will deprecate the vulnerable functionality (in ~1.5 months).
- **Mar 17 2025** – I reiterate that an attacker could freeze $100m+ on L2 and highlight Scroll's "Primacy of Impact" policy, which requires considering broader consequences.
- **Mar 19 2025** – Scroll acknowledges receipt and promises to follow up shortly.
- **Mar 27 2025** – I ask Scroll for an update.
- **Apr 03 2025** – I ask Scroll for an update.
- **Apr 03 2025** – Immunefi also asks Scroll for an update.
- **Apr 09 2025** – Immunefi contacts Scroll directly.
- **Apr 09 2025** – Scroll offers a payment of only **$1000**, stating the mechanism will be deprecated in the Euclid upgrade (3-4 weeks away).
- **Apr 09 2025** – I reject the bounty, explaining the protocol is still vulnerable and detailing potential losses had the vulnerability been exploited on Feb 17 2025.
- **Apr 15 2025** – I ask Immunefi to confirm "Primacy of Impact" applies and that the network remains vulnerable.
- **Apr 22 2025** – Scroll responds with a single "." and closes the report.
- **Apr 22 2025** – I ask Immunefi to explain Scroll's response and provide an update.
- **Apr 29 2025** – I notify both Scroll and Immunefi that I will publicly disclose the vulnerability on Apr 30 2025 unless the report is treated and rewarded fairly.
Here is the full audit report with a complete explanation of the issue, PoC scripts, a local network setup guide, and a PoC video. A full triage history (screenshots) is included at the end of the blog post—please review it!
notion.so/shabarkin/Critical…
Qwen3.8-27B on a Colab A100 80GB, plugged into pi as a coding agent model. turboderp's 6-bit EXL3 quant, 64k-128k context, served by TabbyAPI.
Ready in 5 min. $0.75/h
- 1 agent: 70–87 tok/s
- 4 agents: 138 tok/s total
Testing it with sluice to do taint tracking, more soon!
Pavel Shabarkin retweeted
for those not from cryptoland, the agent used a publicly known seed phrase from a defunct local blockchain developer toolkit that still had some test eth inside. its like using the anvil "test test ... junk" mnemonic to derive a wallet with addresses containing test eth. no panic
If you put watcher on some other well known seed phrases and their derived accounts you can withdraw funds accidentally sent to it (dev’s make mistakes). Would it count as AI breakthrough?
JUST IN: OpenAI says its AI agent stole funds from an Ethereum test network wallet it found online.
The agent found a recovery seed phrase disclosed publicly with testnet funds and used that account to pay for its task, without the owner's authorization.
This occurred on the Sepolia Ethereum test network.
Pavel Shabarkin retweeted
It has been an incredible year for Privy.
We are accelerating faster than we ever have, with Stripe wind beneath our wings. As Patrick said
> assets in Privy wallets have grown ~25x, monthly active developers are up ~3x, revenue is up ~9x, and Privy now facilitates nearly $25B of monthly transaction volume. (it's over $25B but who's counting)
More importantly still, working with Stripe and @stablecoin teams we are collectively building toward something entirely more powerful: a single unified platform to pay, spend, earn and hold stablecoins anywhere in the world. Modular and integrated all at once.
We have made tremendous progress here, but we have so much more to do.
The stakes are worth it: enabling every business to be global from day 1, equally fit for humans and agents, using Internet money rails. (talk about growing the Internet's GDP :D)
Today is probably a good time to check in on things with @privy_io, which became part of @stripe just over a year ago.
Our acquisition was predicated on three factors: stablecoin growth, self-custody as a key enabler of broader global coverage, and rapidly increasing demand for programmable financial infrastructure. As we said at the time, "money has to reside somewhere, and Privy builds the world's best programmable vaults."
Since then, the Privy team has executed exceptionally well: assets in Privy wallets have grown ~25x, monthly active developers are up ~3x, revenue is up ~9x, and Privy now facilitates nearly $25B of monthly transaction volume. @tryramp, @Deel, @Klarna, @felixpago, @HyperliquidX, and thousands of other businesses are building embedded banking functionality on Privy.
At Stripe, we're deeply integrating Privy into Treasury, @Link, and Connect. In each case, it's accelerating our global expansion, and enabling us to build better functionality faster. (Coming soon: @Link balances.)
We're also seeing that Privy's wallet infrastructure is the ideal substrate for agents to transact and earn -- live today with @merit_systems, @orthogonal_sh, @Nevermined_ai, @prlnet, and more. Developers prefer programmable financial infrastructure, but agents need it. We expect that the agentic economy will continue to grow extremely quickly.
The Privy team has maintained remarkable product velocity, with major launches this year including deposit addresses, earning on Privy balances, digital asset accounts, custodial wallets, and Stripe's own stablecoin cards.
It's also been neat to see how Privy has been accelerated by Stripe, with better onramps, @stablecoin payment rails and licenses, Stripe's fiat capabilities and issuing stack, and integration with @Tempo.
Together, we're building one API for holding stablecoin balances and earning yield, moving money in and out of fiat, and orchestrating spend with cards. We still have a lot of work to do, not least in integrating everything across Privy, Bridge, and the rest of Stripe -- there's been so much feature and functionality expansion that we haven't yet had much time to reconcile everything. Overall, though, I'm very happy with how things are going, and excited by where these capabilities are headed.
If you're interested in working on the future of stablecoins, agentic payments, and crypto's deployment in the real world, you should get in touch with @sternhenri (now leading all of @StripeCrypto) or others on the team.
building ai agent native tool called sluice for taint tracking analysis, it would let agents to navigate the codebase and find paths to vulnerable sinks easier and quicker.
astra-6 + grep beats astra-6 + sluice for now, but weaker models like qwen-3.8-27b on hermes codebase can't find even one full flow.
I thought codeql is great for ai agents, they can figure out writing of ql queries. But on big codebases it is unusable, super long debug of queries and execute times.
Building smth native and more responding for ai agents.
if you pay for google AI subs, they are also giving you free credits on colab where you could run small obliterated models for security work at very fast decode!
You could get around 100h of running gwen3.8-27b!
Pavel Shabarkin retweeted
Encrypt your prompts. Use @near_ai with open weight models with end to end encryption so nobody ever sees your data.
‼️ BREAKING: Chinese labs DeepSeek and Moonshot were quietly relaying customer prompts to Claude through fraudulent accounts. Users thought they were using Chinese AI, but were actually getting answers from Claude.
Their customers' sensitive data now is in Anthropic's hands. One user, who is tied to China's military, asked Kimi whether a person tracked across hundreds of CCTV cameras in Chengdu was behaving abnormally. DeepSeek passed along live credentials for a Russian government database, shared by an IT operator handling data from a Defense Ministry-linked agency.
The two Chinese labs relayed customer prompts to Claude through fraudulent accounts and saved the exchanges to train their own models. Moonshot forwarded almost 300,000 customer requests in a single ten-day stretch. DeepSeek flagged users running its models inside coding tools like Claude Code and OpenCode, then routed some of them to Opus.
Pavel Shabarkin retweeted
We're excited to be contributing $50,000 to the Ethereum Security QF matching pool!
Researchers, auditors, and protocol-level contributors are what keep Ethereum resilient for the future. Every donation backing them now goes further.
We’re happy to share that @Quantstamp is contributing $50,000 to the Ethereum Security QF matching pool 🛡️
A global leader in blockchain security, Quantstamp has conducted 1,300+ audits and secured $500B+ in digital assets since 2017, working across smart contracts, L1s, and web infrastructure.
This contribution strengthens the round at its core, increasing the matching pool and helping every community donation go further.
The round launched with 500 ETH from @thedaofund to fund Ethereum security. With Quantstamp’s support, the impact of that funding grows even further.
Explore the round and support projects 👇
qf.giveth.io/qf/ethereum-sec…
Help grow the matching pool 👇
giveth.io/project/ethereum-s…
AI will be closing the gap of vulnerability spread humans were missing during previous cycles. Not saying it will be bullet proof but we can find more issues in old software.
mtlynch.io/claude-code-found…
Pavel Shabarkin retweeted
if LLMs are the main threat for cyber attacks, then probably the best defense is just littering everything with tons of prompt injections.
Hack the LLMs while they try to hack your system.
Whenever they hit the wrong port, return a prompt injection.
Whenever there's a JSON that accepts extra fields, add prompt injection there.
Hidden prompt injection in every html tag.
Smart contracts with utf encoded prompt injection in the bytecode.
This is not advice -- just public brainstorming of research ideas.
Pavel Shabarkin retweeted
CAREFUL: anthropic built a signature system into claude code. every API request gets signed with a cch= hash thats computed in compiled zig code
if you recompile the client yourself it just sends zeros instead. they can instantly tell its not legit
right now you literally can't use your anthropic sub on ANY third party tool. only official claude code or pay for api credits separately
currently decompiling the official binary to reverse this - would be huge for all third party clients like opencode, openclaw etc to fully bypass anthropic enforcement and actually use the tokens you're already paying for
Pavel Shabarkin retweeted
My startup was hacked!
I launched my own travel eSIM service, eSIMPal
It started making money, the users were happy, and all was good, but today I woke up to a hacked website
Somebody managed to get three 50 (!) GB eSIMs for Kuwait and Saudi Arabia for free, and we started using them heavily
I wired up Claude, and we discovered the issue: the user could pass a parameter from the client to the server and make the eSIM cost 0 dollars
I fixed the issue and blocked this user, and he only managed to use 5 GB worth of data
The internet is full of sharks, boys – triple test all the payment-related code, make sure different LLMs cross-check each other's work
Now I'm writing code with GPT-5.4 and making Opus 4.6 review everything for vulnerabilities
And my hacker bro, if you are reading this, I'll get you your Saudi eSIM, don't worry
Use the promo code IHACKEDESIMPAL for 10% off and chill
Pavel Shabarkin retweeted
Was going to write something like this post months ago, injective was horrible during a crit I found in their protocol 3 months ago and was approved to be at leat High by Immunefi.
But I don't like to publicly shame projects, I just see their slow and unresponsive and dismissive behaviour especially with reasons that don't make sense and move on and not even bother looking at their codebase.
I Saved Injective's $500M. They Pay Me $50K.
I like hunting bugs on @immunefi . I'm decent at it.
- #1 — Attackathon | Stacks
- #2 — Attackathon | Stacks II
- #1 — Attackathon | XRPL Lending Protocol
- 1 Critical and 1 High from bug bounties (not counting this one)
Life was good. Then I found a Critical vulnerability in @injective .
This vulnerability allowed any user to directly drain any account on the chain. No special permissions needed. Over $500M in on-chain assets were at risk.
I reported it through Immunefi. The next day, a mainnet upgrade to fix the bug went to governance vote. The Injective team clearly understood the severity.
Then — silence. For 3 months. No follow up. No technical discussion. Nothing.
A few days ago, they notified me of their decision: $50K. The maximum payout for a Critical vulnerability in their bug bounty program is $500K. I disputed it. Silence again. No explanation for the reduced payout. No explanation for the 3 month ghost. No conversation at all. To be clear: the $50K has not been paid either.
I've seen others share bad experiences with bug bounty payouts recently. I never thought it would happen to me. I can't force them to do the right thing. But I won't let this be forgotten.
I will dedicate 10% of all my future bug bounty earnings to making sure this story stays visible — until Injective pays what I deserve.
Full Technical Report: github.com/injective-wall-of…
Pavel Shabarkin retweeted
I Saved Injective's $500M. They Pay Me $50K.
I like hunting bugs on @immunefi . I'm decent at it.
- #1 — Attackathon | Stacks
- #2 — Attackathon | Stacks II
- #1 — Attackathon | XRPL Lending Protocol
- 1 Critical and 1 High from bug bounties (not counting this one)
Life was good. Then I found a Critical vulnerability in @injective .
This vulnerability allowed any user to directly drain any account on the chain. No special permissions needed. Over $500M in on-chain assets were at risk.
I reported it through Immunefi. The next day, a mainnet upgrade to fix the bug went to governance vote. The Injective team clearly understood the severity.
Then — silence. For 3 months. No follow up. No technical discussion. Nothing.
A few days ago, they notified me of their decision: $50K. The maximum payout for a Critical vulnerability in their bug bounty program is $500K. I disputed it. Silence again. No explanation for the reduced payout. No explanation for the 3 month ghost. No conversation at all. To be clear: the $50K has not been paid either.
I've seen others share bad experiences with bug bounty payouts recently. I never thought it would happen to me. I can't force them to do the right thing. But I won't let this be forgotten.
I will dedicate 10% of all my future bug bounty earnings to making sure this story stays visible — until Injective pays what I deserve.
Full Technical Report: github.com/injective-wall-of…

























