A assinatura off-chain que custou 84 mil USDC
Dezembro 2024. Um titular em Brasília visita uma "nova DEX com taxa zero" promovida num grupo de alpha no Telegram. O site pede uma assinatura rotulada Permit — sem transação, sem gas, sem alerta do MetaMask. Ele assina.
Onze segundos depois, seus 84 mil USDC se vão. A assinatura Permit deu a um terceiro endereço o direito de gastar todo o saldo USDC dele, e o drainer chamou transferFrom no instante em que a assinatura foi retransmitida.
Por que EIP-2612 Permit é tão perigoso
O EIP-2612 foi desenhado para economizar gas: em vez de uma transação approve separada, o usuário pode assinar uma mensagem off-chain, e o spender inclui essa assinatura ao chamar o contrato. A assinatura é gasless e parece inofensiva — o MetaMask mostra um prompt de dados estruturados, não uma transação. Mas o efeito é idêntico a uma aprovação ilimitada. E como nada foi transmitido on-chain no momento da assinatura, o revoke.cash não detecta a ameaça pendente.
Os quatro rótulos de assinatura que deveriam te paralisar
Permit— EIP-2612, aprovação gasless de ERC-20.PermitSingle/PermitBatch— contrato Permit2 da Uniswap, ainda mais poderoso.setApprovalForAll— aprovação para toda coleção de NFT.0x1626ba7e(ou qualquer hex bruto) — typed-data genérico; a carteira não consegue te dizer o que você está assinando.
Se uma tela de carteira mostra qualquer um desses e o site não é um protocolo mainstream verificado que você já usou antes, rejeite a assinatura e feche a aba.
Os usos legítimos
Usos reais de Permit existem: Uniswap, 1inch, CowSwap e vários protocolos de lending importantes usam Permit e Permit2 para economizar gas. A defesa não é "nunca assine Permit" — é "só assine Permit na URL que você digitou, em protocolo que você já usou várias vezes antes".
Se você assinou e os fundos ainda estão lá
Você tem minutos, não horas. Abra a mesma carteira, envie todo o saldo do token para uma carteira nova sua. A assinatura Permit dá ao atacante o direito de transferir, mas não o impede de você transferir primeiro. Velocidade vence.