asashai.
News 4 min read

The Gnosis Pay Hack: How a Tiny Missing Check Let an Attacker Fake a Signature

An attacker drained about $265,000 from Gnosis Pay by making a failed transaction look like a valid signature. The amount was small. The lesson — and the fact that the bug had already been quietly fixed elsewhere — is not.

The Gnosis Pay Hack: How a Tiny Missing Check Let an Attacker Fake a Signature

Most crypto hacks that make headlines are about scale — a bridge drained of $290 million, an exchange wallet emptied overnight. The Gnosis Pay incident is the opposite kind of story. The dollar figure is almost modest: about $265,000. What makes it worth your attention is how it happened, because it's one of the cleanest examples you'll ever see of a single missing line of code turning a safety feature into an open door.

What happened

On or around June 1, 2026, an attacker drained roughly $265K in EURe and GNO from dozens of user accounts ("Safes") connected to Gnosis Pay, the crypto debit-card product built on Gnosis Chain. The vulnerable component was the Zodiac Delay Module (v1.1.0) — a contract that queues certain non-card transactions and enforces a short cooldown before they can run.

That design is sound. A withdrawal gets queued, waits out the delay, and only then becomes executable. The point is to give a user time to notice and react if something looks wrong. The failure wasn't the delay. It was how the module decided a transaction was authorized in the first place.

The bug, in plain English

To check whether a smart contract had "signed off" on a transaction, the code used a common standard called ERC-1271. In that standard, a contract is asked "is this signature valid?" and is expected to answer with a specific four-byte magic value (0x1626ba7e) if the answer is yes.

Here's the catch. The Gnosis Pay code only checked whether the first four bytes of the returned data matched that magic value. But in Ethereum, when a call fails and reverts, it also returns data — and that revert data is controlled by whoever wrote the failing contract.

So the attacker deployed a contract designed to be reached through that verification path and to revert with a message whose first four bytes were exactly the "valid" magic value. The check saw the right bytes, shrugged, and accepted a failed call as a legitimate, approved signature. From there, malicious transactions sailed into the queue and, after the short delay, out went the funds.

The heart of the exploit: a signature check that confirms the bytes look right but never confirms the call actually succeeded. "It returned the magic number" and "it approved this" are not the same statement — and the gap between them was the whole hack.

The part that stings

According to the post-mortem from security researchers, the developers had already found and quietly fixed this exact bug months earlier — in a different code repository — but the deployed Gnosis Pay contracts were never patched. The knowledge existed. The fix existed. It just never reached the code that was actually holding people's money.

That's the most human failure in the whole episode, and the most common. In crypto, a vulnerability you've privately patched in one place is still a live vulnerability everywhere you haven't.

What you should take from it

You're probably not auditing Solidity. But the lessons translate directly to how you keep your own funds safe:

This is also a useful reminder of what DeFi actually is under the hood: not a bank with a help desk, but software that does precisely what its code says — and only what its code says. When the code says "a failed call counts as a signature," that's the rule the money plays by, whether anyone meant it or not.

The good news is that $265K is a cheap tuition for a lesson the whole industry needed reprinted: verify that a call succeeded, not just that it returned the right-looking bytes — and when you fix a bug, fix it everywhere it lives.

Frequently asked questions

Roughly $265,000 in EURe and GNO was drained from dozens of user Safes on June 1, 2026. By the standards of recent crypto exploits — some of which have run into the hundreds of millions — that's small. The interest is in the mechanism, not the size.

Gnosis Pay's contract used the ERC-1271 standard to check whether a smart-contract signature was valid. The check only confirmed that the first four bytes of the returned data matched the 'valid' magic value. Because a reverted (failed) call also returns data the attacker controls, they could craft a failed call whose revert message looked exactly like an approved signature.

It's a Zodiac component that queues certain outgoing transactions and forces a short cooldown before they can execute — a safety feature. The flaw wasn't the delay itself; it was that the module let malicious transactions into the queue through a broken signature-verification fallback.

Two things. First, signature checks have to validate that a call actually succeeded, not just that the bytes look right. Second, the developers had reportedly fixed this exact bug months earlier in a different repository but never patched the deployed code — a reminder that a fix isn't a fix until it ships everywhere it's needed.

Popular this week

  1. 01How to Research an Altcoin Before You Buy ItGuide · 3 min
  2. 02What Moves Crypto Prices? The Forces Behind the VolatilityAnalysis · 3 min
  3. 03Japan Moves to Reclassify Crypto as Financial Products — and Cut the Tax to 20%News · 3 min
  4. 04Bitcoin Slides Toward $63K as Spot-ETF Outflows Rattle the MarketNews · 3 min
  5. 05Crypto Taxes 101: What Usually Counts as a Taxable EventGuide · 3 min