Permit Signature Phishing

Security Updated Jun 2026

What is Permit Signature Phishing?

Permit signature phishing exploits the EIP-2612 permit standard to steal tokens. Instead of tricking you into sending a transaction, the attacker asks you to sign a message. Signing a message costs no gas and doesn’t appear as a transaction in your wallet — but it grants the attacker a cryptographic authorization to spend your tokens on-chain later.

The attack is especially dangerous because users have been trained to treat “signing a message” as safe (used for authentication on many dApps). Permit phishing blurs the line between harmless message signing and dangerous transaction approval.

How Permit Phishing Works

1. Victim visits a fake dApp (e.g., fake airdrop claim site)
2. dApp asks: "Sign this message to verify you're human"
3. The message is actually an EIP-2612 permit:
   - spender: attacker's contract
   - value: unlimited (type(uint256).max)
   - deadline: far future
4. Victim signs — no gas cost, no visible transaction
5. Attacker submits the permit on-chain (attacker pays gas)
6. Attacker's contract calls transferFrom() to drain victim's tokens

Why It’s Harder to Detect

Traditional approval phishing shows a transaction in your wallet with a gas estimate. Users have learned to be suspicious of unsolicited transactions. But a personal_sign or eth_signTypedData message looks like routine authentication:

AspectTraditional ApprovePermit Signature
Wallet promptTransaction confirmationMessage signing
Gas costVictim pays gasNo gas (off-chain)
SpeedVictim notices the transactionSilent until tokens move
ReversalCan revoke approvalPermit already signed, attacker acts anytime

The Permit2 Amplifier

Uniswap’s Permit2 contract makes this worse. Permit2 is a universal approval router — one signature can grant spending权限 over all tokens you’ve ever approved to Permit2, not just one token. Many popular dApps use Permit2, so an attacker who obtains a Permit2 signature can drain everything.

Red Flags

  • “Sign this message to verify” on an unfamiliar site — legitimate verification rarely requires EIP-712 typed data signatures
  • Wallet shows EIP-712 typed data with fields like spender, value, deadline — these are permit parameters, not authentication
  • Site asks you to sign after connecting wallet but before you’ve initiated any action — you didn’t click “swap” or “claim,” so why is it asking for a signature?
  • The domain doesn’t match the project’s official URL

How to Protect Yourself

1. Understand What You’re Signing

Modern wallets display the contents of EIP-712 messages. If you see spender, value, or allowed fields, you’re signing a permit, not a login. Reject it immediately.

2. Use Wallet Security Extensions

ToolHow It Helps
Rabby WalletSimulates signatures and warns about permit phishing
Wallet GuardBrowser extension that flags malicious sites and signatures
Pocket UniverseTransaction simulation and risk scoring
BlockaidPre-transaction security scanning (integrated in some wallets)

3. Never Sign Messages on Unfamiliar Sites

If you didn’t navigate to the site from a trusted link, don’t connect your wallet — and definitely don’t sign anything.

4. Revoke Compromised Permits

If you suspect you’ve signed a malicious permit, act fast:

  1. Move all tokens from the compromised wallet to a fresh wallet
  2. Revoke any existing approvals on revoke.cash
  3. Monitor the old wallet — the attacker may try to use the signed permit

Permit Phishing vs Traditional Phishing

AspectPermit PhishingTraditional Phishing
What’s stolenToken approval via signatureSeed phrase or credentials
User actionSigns an off-chain messageEnters credentials on fake site
Gas paid byAttacker (when executing)N/A
Detection windowVery short — tokens move within minutesLonger — attacker must import wallet

Frequently Asked Questions

Q: I signed a weird message on a site. What do I do? A: Immediately move all assets from your wallet to a new one. If you signed a permit, the attacker can drain your tokens at any time — even hours or days later. Speed is critical.

Q: Can I cancel a permit signature? A: Not directly. The signed permit is a valid cryptographic authorization. Your only option is to move the tokens before the attacker uses it. Once the tokens are in a new wallet, the permit is useless.

Q: Is it safe to sign messages on legitimate dApps? A: Yes — legitimate dApps use message signing for authentication (e.g., “Sign in to OpenSea”). The danger is when a site asks you to sign EIP-712 typed data containing spender and value fields disguised as a login.

Q: Does a hardware wallet protect against permit phishing? A: Partially. The hardware wallet displays the signature data on its screen, giving you a chance to review it. But if you approve without reading, the attack succeeds. Always check the fields on the device display.