Definition
En approval exploit är en typ av säkerhetsrisk där en angripare utnyttjar mekanismer för token-approval eller allowance för att flytta en offers tillgångar utan ytterligare samtycke. Det uppstår typiskt när ett smart contract eller ett gränssnitt får en användare att ge alltför stora eller osäkra allowances, som angriparen sedan anropar via skadliga eller komprometterade contracts. Exploiten bryter vanligtvis inte den underliggande token-standarden, utan missbrukar i stället den legitima auktorisationsmodellen som är inbyggd i tokenens approval-logik. Som resultat är överföringen av medel tekniskt giltig on-chain, även om den bryter mot användarens förväntningar på säkerhet och omfattning.
Den här risken är nära kopplad till hur token-allowance-tillstånd lagras och refereras av smart contracts. När en angripare väl har tillgång till en hög eller obegränsad allowance kan hen upprepade gånger anropa transfer-funktioner för användarens adress tills det godkända saldot är tömt. Approval exploits bygger ofta på vilseledande transaktionsrutor, missvisande contract-namn eller återanvändning av tidigare beviljade behörigheter på oväntade sätt. Den centrala egenskapen är en missanpassning mellan vad användaren tror sig ha godkänt och vad allowance i praktiken faktiskt tillåter.
Sammanhang och användning
I säkerhetsdiskussioner beskrivs en approval exploit som en behörighetsmissbruksrisk snarare än ett direkt protokollfel. Den förknippas ofta med token-designer av ERC-20-typ, där ett separat approval-steg sätter en allowance som andra contracts kan spendera. När dessa allowances är felkonfigurerade, aldrig återkallade eller ges till opålitliga contracts skapar de en bestående attackyta som motståndare senare kan aktivera. Exploiten befinner sig därför i skärningspunkten mellan smart contract-design, wallet-användarupplevelse och användarens förståelse av on-chain-auktorisering.
Begreppet används ofta tillsammans med allowance för att beskriva hur detaljerade eller återkallningsbara token-behörigheter bör vara. Säkerhetsgranskare och protokolldesigners behandlar approval exploits som en egen hotkategori som måste beaktas när man utformar contract-gränssnitt och behörighetsflöden. I incidentrapporter signalerar man genom att märka en attack som en approval exploit att angriparen agerade inom formellt beviljade behörigheter, även om dessa behörigheter erhölls eller strukturerades på ett vilseledande eller osäkert sätt. Denna klassificering hjälper till att skilja den från buggar som beror på aritmetiska fel, reentrancy eller andra lågnivåbrister i contracts.