Permit2 Approval Drainers: The New Threat to Token Security
Permit2 approval drainers represent a critical new threat in DeFi security, exploiting the innovative Permit2 standard to drain wallets without triggering traditional transaction warnings. Unlike earlier phishing attacks that required users to blindly sign an approval transaction, Permit2 drainers operate almost entirely off-chain, making them far harder to detect.
This guide will explain exactly how Permit2 works, why it has become a magnet for malicious actors, and—most importantly—how you can protect your tokens. We'll cover real-world examples, compare Permit2 drainers to conventional unlimited approval scams, and give you actionable defense strategies. Whether you're an active DeFi user or a security-conscious investor, understanding this threat is essential for safeguarding your assets.
- Permit2 approval drainers exploit off-chain permit signatures to gain unlimited token access without a visible on-chain transaction.
- The signature itself is not reversible; you must invalidate the nonce or move funds to stop an attacker from using the permit.
- Hardware wallets with secure screens are the best defense against signing malicious permits because they show the exact data.
- Tools like Revoke.cash can help you manage and revoke Permit2 allowances across multiple chains.
- Always verify the dApp domain and contract address before signing any message; lookalike sites are common.
- The Permit2 standard is beneficial but has created a new attack vector that requires user education and better wallet UI.
What Are Permit2 Approval Drainers?
Permit2 approval drainers are malicious scripts or dApps that trick users into signing a Permit2 off-chain permit, granting the attacker unlimited access to their tokens. The Permit2 standard, pioneered by Uniswap and now adopted by many DeFi protocols, allows users to approve token spending with a signature instead of an on-chain approve() transaction. This is convenient for gasless interactions and batch approvals, but it also introduces a new attack vector.
A drainer typically presents a legitimate-looking interface (e.g., a fake airdrop claim page) that requests a signature. If the user signs a malicious Permit2 permit, the attacker gains the ability to transfer the user's tokens at will—without any further on-chain confirmation. Because the approval is established off-chain, many wallets do not show the usual red warning about 'unlimited approval', leaving users unaware of the risk until the tokens are gone.
How Permit2 Changes the Risk Landscape for Token Approvals
Traditional ERC-20 approvals require an on-chain transaction that explicitly sets an allowance for a spender contract. Wallets like MetaMask display a clear message: 'Allow this contract to spend your tokens up to [amount]?' Users can see the spender address and the amount. With Permit2, the approval is done via an off-chain signature (EIP-712 typed data) that the user signs with their wallet's 'sign' function. This signature is then submitted to a contract by the spender, effectively turning the signature into an on-chain approval.
- Old model: On-chain approve → spender can transfer → visible in wallet.
- Permit2 model: Off-chain sign → spender submits signature → approval activated → no upfront transaction warning.
This means a user can revoke a malicious approval by noticing a strange signature request, but many users blindly sign without checking the details. The signature itself is not reversible; once the spender submits it, the approval is live. The permit2 approval drainer exploits this by tricking users into signing permits that set the allowance to the maximum uint256 value, essentially handing over full control of the tokens.
The Unseen Danger: Off-Chain Signatures and the Illusion of Safety
One of the most insidious aspects of Permit2 drainers is that they often appear as harmless signature requests. Wallets treat signature signing differently from transaction signing. When signing a transaction, the wallet typically shows a gas fee estimate and a confirmation screen. But when signing a typed data message (EIP-712), many wallets display only a short warning like 'Sign this message to prove you own this wallet' or show the raw JSON data that most users can't interpret.
A typical Permit2 permit signature includes parameters like: owner, spender, value, nonce, deadline. If value is set to 2^256 - 1 (max), the user is approving infinite spending. Attackers know that users rarely scrutinize these values. Moreover, because the signature is off-chain, the approval doesn't show up on Etherscan until the attacker submits it—which they can do days later, after the user forgets about the interaction. This delayed execution makes detection even harder.
Real-World Example: The Inferno Drainer and Permit2 Exploitation
In 2023, a notorious wallet-draining operation known as Inferno Drainer began incorporating Permit2 into its toolkit. Inferno Drainer is a phishing-as-a-service platform that offers scammers customizable dApp interfaces to steal tokens. By integrating Permit2, the drainer could request a single signature that gave access to multiple tokens (e.g., USDC, WETH, DAI) simultaneously, since Permit2 allows batched permits.
The scammers would set up a fake Uniswap or OpenSea clone, prompting users to 'claim an airdrop' or 'verify ownership'. After the user signed the malicious permit, the drainer would immediately submit the signature to the Permit2 contract and transfer all approved tokens to the attacker's wallet. Because the signature was valid for the spender address controlled by the attacker, no further user action was needed. This method was highly effective because it bypassed the 'transaction signature' prompt that many security-conscious users look for.
Tip: Always check the domain and contract address of any dApp requesting a signature. Use chain tools like Etherscan's 'Read Contract' to verify if a signature request is a genuine Permit2 permit from a trusted protocol.
Comparison: Traditional Unlimited Approval Attacks vs. Permit2 Approval Drainers
| Aspect | Traditional Unlimited Approval | Permit2 Approval Drainer |
|---|---|---|
| Transaction type | On-chain approve() call | Off-chain signature (EIP-712) |
| Wallet warning | Clear 'Allow spending' prompt | Cryptic 'Sign message' with raw data |
| User action required | Confirm transaction | Sign typed data (often ignored) |
| Gas cost | Paid by user upfront | Paid by attacker when submitting |
| Revocation method | Set allowance to 0 via tx | Invalidate nonce or revoke Permit2 approval |
| Detection difficulty | Easy (Etherscan shows approval) | Hard until attacker submits |
This table highlights that while both can lead to total token loss, Permit2 drainers are stealthier and more likely to succeed against less vigilant users. The convenience of Permit2 has inadvertently opened a new avenue for fraud.
Why Permit2 Is a Double-Edged Sword
Permit2 was introduced to solve real problems: users had to approve each token individually for each dApp, leading to clutter and high gas costs. The standard enables multi-token approvals, expiring allowances (via deadlines), and gasless transactions. Major protocols like Uniswap, 1inch, and SushiSwap have adopted it. However, the same features that make Permit2 user-friendly also make it attractive to attackers.
For example, the ability to set an allowance that never expires (by setting a very high nonce or long deadline) means a signed permit can be used years later. If a user signs a malicious permit today, the attacker can wait until a market movement to drain the tokens. Additionally, because the signature is signed offline, it cannot be revoked via a traditional 'revoke approval' transaction; the user must either invalidate the nonce by making a separate invalidateUnorderedNonces call to the Permit2 contract or simply move their tokens to a new wallet.
The security community is divided: some argue that wallets should add custom prompts for Permit2 signatures, while others believe users need better education. Until then, the burden falls on individuals to understand the risks.
Proactive Defense Strategies Against Permit2 Drainers
Protecting yourself requires a combination of technical tools and behavioral changes. Below are the most effective defenses currently available:
- Use a hardware wallet with a secure screen: Devices like Ledger or Trezor display the exact data being signed. You can verify the parameters (e.g., spender address, value) before confirming.
- Install a signature verification browser extension: Tools like Pocket Universe or Wallet Guard can flag suspicious permit signatures and show human-readable warnings.
- Revoke unused approvals regularly: Use Revoke.cash or Etherscan's token approval checker to scan for any active Permit2 allowances. You can revoke them by calling
invalidateUnorderedNonceson the Permit2 contract. - Check the dApp's authenticity: Always verify the website domain and contract address against official sources. Many drainers use lookalike domains (e.g., uniswap-claim.xyz).
- Limit signing of any off-chain messages unless absolutely necessary: When connecting to a new dApp, question why a signature is required. Legitimate dApps may request a signature for gasless approvals, but you can often approve manually via a transaction instead.
- Monitor your token approvals: Services like Debank and Zapper show your current allowances. Set up alerts for new approvals.
How to Revoke a Malicious Permit2 Approval (If It Happens)
If you suspect you've signed a malicious permit, act quickly. Even though the signature is off-chain, you can still prevent the attacker from using it if you act before they submit it.
Step 1: Identify the spender address. Look at the signature data (e.g., from your wallet's activity log). The spender parameter is the address that will control your tokens.
Step 2: Invalidate the nonce. On the Permit2 contract (typically 0x000000000022D473030F116dDEE9F6B43aC78BA3 on Ethereum and many L2s), call the function invalidateUnorderedNonces(uint256 wordPos, uint256 mask). This invalidates a range of nonces, making the stolen signature unusable. You can find tools on Revoke.cash that automate this for Permit2.
Step 3: Move your funds to a new wallet. If you cannot quickly invalidate the nonce, transferring your tokens to a new wallet is the safest option. Once the tokens are moved, the permit is useless because the owner address no longer holds the approved tokens.
Important: Simply revoking the ERC-20 allowance for the spender contract does not remove a Permit2 approval. Permit2 has its own separate allowance system. You must interact directly with the Permit2 contract.
The Future: ERC-20 Permit and Permit2 Standard Evolution
Permit2 is not the only standard using off-chain approvals. ERC-2612 (EIP-2612) introduced the permit function for individual ERC-20 tokens, allowing the same off-chain signature pattern. However, Permit2 is a separate, more flexible contract that can handle any token. The industry is moving toward universal adoptions, with many new protocols building on Permit2.
As adoption grows, we can expect better tooling. Wallet providers (MetaMask, Rainbow, etc.) are improving their UI for typed data signatures, showing clearer warnings. Some wallets now display a 'Risky signature' warning if the permit includes infinite approval. Additionally, smart contract wallets (e.g., Safe, Argent) can enforce policies that limit signing of arbitrary messages, offering another layer of protection.
For now, the threat from permit2 approval drainers will persist as long as users continue to sign messages without understanding the implications. Education remains the most powerful defense.
Conclusion: Staying Ahead of the Permit2 Threat
Permit2 approval drainers represent a clever adaptation of social engineering to a technical standard designed for convenience. While Permit2 itself is not malicious, its off-chain nature creates a blind spot in user security. By understanding how these drainers work, using the right tools, and adopting a cautious approach to signing messages, you can significantly reduce your risk.
The key takeaway is simple: never sign a data message from an unverified source. Use hardware wallets, revoke unused permits, and stay informed about new attack vectors. As DeFi evolves, so do the attackers—but with vigilance, you can keep your tokens safe.
Common mistakes to avoid
- Assuming signing a message is harmless because it doesn't cost gas.
- Ignoring the spender address in a permit signature and not checking if it's a known contract.
- Failing to revoke old Permit2 approvals even after the associated dApp is no longer used.
- Using a software wallet without a secure screen for signing typed data.
- Not using a token approval monitor like Revoke.cash to regularly audit allowances.
- Believing that revoking the token's ERC-20 allowance will also revoke a separate Permit2 allowance.
Frequently asked questions
Can a Permit2 approval drainer steal tokens even if I use a hardware wallet?
Yes, if you approve the signature on the hardware wallet without reading the details. Hardware wallets display the data, but if the user blindly confirms, the attacker can still take the tokens. Always verify the spender address and amount on the device's screen.
How is a Permit2 approval drainer different from a traditional phishing attack that asks for an approval transaction?
A traditional approval requires an on-chain transaction that is clearly visible in the wallet's interface (with gas fees). A Permit2 drainer uses an off-chain signature, which many wallets present as a less dangerous 'sign this message' prompt, making users more likely to accept without scrutiny.
Does revoking the token's allowance on Etherscan stop a Permit2 drainer?
No. Permit2 manages its own allowance mapping. You must revoke the permit on the Permit2 contract itself, usually by calling 'invalidateUnorderedNonces' or using a specialized tool like Revoke.cash.
Are all Permit2 signature requests dangerous?
No. Legitimate dApps like Uniswap use Permit2 for gasless token approvals. The danger is when a malicious actor tricks you into signing a permit for a spender they control. Always verify the spender address and the dApp's authenticity.
Related reading
Track the entities behind the concepts
DeFi Intel maps 11,000+ protocols, tokens and companies to a typed knowledge graph — with live data, incidents and regulation.