Roughly 2,900 rsETH — about $7.8 million — left a Gnosis Safe wallet on Ethereum on Tuesday. The person who discovered the flaw ended up with none of it.
Before the attack transaction could confirm, a bot operating under the name “yoink” saw it sitting in the mempool, front-ran it and claimed the tokens for itself. Jumping the queue cost it roughly $47,000; it then sent 2,882 rsETH on to a different address. BlockSec, Blockaid and SlowMist each described this same chain of events.
An authorization check that said yes to everyone
The wallet in question had been set up so that a helper contract could move funds on its behalf. Nothing unusual about that — if any part of your trading is automated, odds are a similar entry is sitting in your approvals list at this moment.
That helper was meant to verify that the caller actually had permission. What SlowMist and BlockSec found instead was a check that waved through anyone who named the helper itself as the target. In effect the contract vouched for its own caller — which is to say, for anybody.
“The root cause was a flawed authorization check in the Multicall contract,” AstraSec said in a post on X.
The escape route was a token that didn’t exist an hour before
The attacker pushed roughly 2,900 rsETH into a trading pool spun up only minutes ahead of the theft, paired against a worthless asset named Permissionless Attacker Token. The wallet received something in return. What it received was worth nothing.
That detail deserves a moment. In ledger terms, the wallet executed a trade. It handed over $7.8 million in liquid staking tokens for a position no buyer wants, and every one of those steps carried valid authorization.
Safe’s core contracts weren’t the problem
All the firms examining the incident landed in the same place on where it broke, and it was not Safe’s own contracts. The failure sat in a piece the wallet owner had elected to trust and bolt on.
Having gone through a fair number of these post-mortems, I expect the blame in the headline to attach to whichever name in the transaction is most recognizable. That’s rarely where it belongs. The audited foundation behaves as advertised; it’s the add-on sitting on top that determines who is permitted to spend your money.
Kelp put one address on a 24-hour hold
Kelp DAO, the issuer of rsETH, maintains that its contracts are secure and that rsETH remains fully collateralized.
“We’ve detected potential suspicious activity on an address that received rsETH a few hours ago,” KelpDAO wrote on X. “Out of an abundance of caution, we’ve placed that address under a temporary 24-hour pause. During this window, rsETH cannot move in or out of it.”
The interception cost $47,000 and returned $7.8 million
Yoink’s bribe amounts to about six-tenths of one percent of the haul. That is the current market price of simply being quicker than whoever did the labor — and it’s why building a functioning exploit and profiting from one have become two different problems.
The original attacker created the pool, located the broken check and assembled the call. A bot read the transaction in flight and walked away with the money.
Audit what your modules are actually permitted to do
For anyone running a Safe with an automation helper wired in, the worthwhile task this week isn’t another Multicall thread. It’s pulling up your wallet’s module list and working out what each entry can call, and whose word it takes when something tells it the caller is legitimate.
In this case the answer amounted to: anyone willing to name the helper as the destination. And nobody caught it until 2,900 rsETH were already gone.


















STAY ALWAYS UP TO DATE