Definição
Um approval exploit é um tipo de risco de segurança em que um atacante tira partido dos mecanismos de aprovação ou allowance de tokens para mover os ativos de uma vítima sem necessidade de novo consentimento. Normalmente surge quando um smart contract ou interface leva o utilizador a conceder allowances excessivos ou inseguros, que o atacante depois invoca através de contratos maliciosos ou comprometidos. O exploit geralmente não quebra o standard subjacente do token, mas sim abusa do modelo legítimo de autorização codificado na lógica de approval do token. Como resultado, a transferência de fundos é tecnicamente válida on-chain, mesmo que viole as expectativas do utilizador quanto à segurança e ao âmbito da autorização.
Este risco está intimamente ligado à forma como os estados de token allowance são armazenados e referenciados por smart contracts. Uma vez que o atacante tenha acesso a um allowance elevado ou ilimitado, pode chamar repetidamente funções de transferência em nome do endereço do utilizador até que o saldo aprovado seja esgotado. Approval exploits dependem frequentemente de prompts de transação enganosos, nomes de contratos confusos ou da reutilização de permissões anteriormente concedidas de formas inesperadas. A característica central é o desalinhamento entre aquilo que o utilizador acredita ter autorizado e aquilo que o allowance efetivamente permite na prática.
Contexto e Utilização
Em discussões de segurança, um approval exploit é referido como um risco de abuso de permissões, e não como uma falha direta do protocolo. Está frequentemente associado a designs de tokens ao estilo ERC-20, em que um passo de aprovação separado define um allowance que outros contratos podem gastar. Quando estes allowances são mal configurados, nunca revogados ou concedidos a contratos não confiáveis, criam uma superfície de ataque persistente que adversários podem ativar mais tarde. O exploit situa-se assim na interseção entre o design de smart contracts, a experiência de utilização da wallet e a compreensão, por parte do utilizador, da semântica de autorização on-chain.
O termo é muitas vezes usado em conjunto com o conceito de allowance para descrever quão granulares ou revogáveis devem ser as permissões de tokens. Auditores de segurança e designers de protocolos tratam approval exploits como uma categoria distinta de ameaça que deve ser considerada ao desenhar interfaces de contratos e fluxos de permissões. Em relatórios de incidentes, classificar um ataque como um approval exploit realça que o atacante operou dentro de permissões formalmente concedidas, mesmo que essas permissões tenham sido obtidas ou estruturadas de forma enganosa ou insegura. Esta classificação ajuda a distingui-lo de bugs que resultam de erros aritméticos, reentrancy ou outras falhas de baixo nível em smart contracts.