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.