Definícia
Approval exploit je typ bezpečnostného rizika, pri ktorom útočník zneužije mechanizmy token approval alebo allowance na presun majetku obete bez ďalšieho súhlasu. Typicky vzniká vtedy, keď smart contract alebo rozhranie prinúti používateľa udeliť príliš vysoké alebo nebezpečné allowance, ktoré potom útočník využije prostredníctvom škodlivých alebo kompromitovaných kontraktov. Exploit zvyčajne nenarušuje samotný token štandard, ale zneužíva legitímny autorizačný model zakódovaný v logike token approval. Výsledkom je, že prevod prostriedkov je z technického hľadiska na blockchaine platný, aj keď porušuje očakávania používateľa ohľadom bezpečnosti a rozsahu oprávnenia.
Toto riziko úzko súvisí s tým, ako sú stavy token allowance ukladané a ako k nim pristupujú smart kontrakty. Keď útočník získa prístup k vysokému alebo neobmedzenému allowance, môže opakovane volať funkcie na prevod v mene adresy používateľa, až kým sa schválený zostatok nevyčerpá. Approval exploity často stavajú na klamlivých transakčných výzvach, zavádzajúcich názvoch kontraktov alebo na opätovnom použití už skôr udelených povolení neočakávaným spôsobom. Kľúčovou črtou je nesúlad medzi tým, čo si používateľ myslí, že autorizoval, a tým, čo v praxi dané allowance skutočne umožňuje.
Kontext a použitie
V bezpečnostných diskusiách sa approval exploit označuje skôr ako riziko zneužitia povolení než ako priame zlyhanie protokolu. Často sa spája s token dizajnmi v štýle ERC-20, kde samostatný krok approval nastavuje allowance, ktoré môžu míňať iné kontrakty. Keď sú tieto allowance nesprávne nastavené, nikdy neodvolané alebo udelené nedôveryhodným kontraktom, vytvárajú trvalú útočnú plochu, ktorú môžu protivníci neskôr aktivovať. Exploit sa tak nachádza na priesečníku dizajnu smart kontraktov, používateľského rozhrania wallet a chápania on-chain autorizácie zo strany používateľov.
Tento pojem sa často používa spolu s konceptom allowance na opis toho, aké jemné a odvolateľné by mali byť token povolenia. Bezpečnostní audítori a dizajnéri protokolov považujú approval exploity za osobitnú kategóriu hrozieb, s ktorou treba počítať pri navrhovaní rozhraní kontraktov a tokov povolení. V správach o incidentoch označenie útoku ako approval exploit zdôrazňuje, že útočník konal v rámci formálne udelených povolení, hoci tieto povolenia získal alebo nastavil klamlivým či nebezpečným spôsobom. Takáto klasifikácia pomáha odlíšiť tieto prípady od chýb spôsobených aritmetickými omylmi, reentrancy alebo inými nízkoúrovňovými chybami kontraktov.