Advarsel om Farlig Kode
Cardano-grunnlegger Charles Hoskinson har advart mot «seriøst farlig kode» etter å ha delt en analyse som knytter Ethereums EIP-7702-delegasjonsfunksjon til et nylig angrep som raskt tømte en Binance-hot-lommebok.
I sitt innlegg på X skrev Hoskinson: «Vær forsiktig, det finnes noe seriøst farlig kode der ute,» sammen med en nedbrytning publisert av CyberSatoshi.
Analyse av Angrepet
Innlegget han delte beskrev rekonstruert bytekode for en angivelig Binance EIP-7702 sweeper, og argumenterte for at kontrakten var spesialtilpasset for børsens drift. Hoskinsons ledsagende melding identifiserte ikke en spesifikk protokollfeil eller forklarte hvilken del av analysen han støttet.
CyberSatoshis konto plasserte to sikkerhetsspørsmål ved siden av hverandre: Det ene omhandler hvordan en angriper fikk tillatelse til å handle for lommeboken, mens det andre gjelder hva Ethereums delegeringsfunksjon tillot angriperen å gjøre etter å ha fått denne tillatelsen.
Ifølge CyberSatoshis nedbrytning etterlot den rekonstruerte kontrakten nøyaktig 1 ETH i lommeboken når den sveipet sin native saldo. Plakaten argumenterte for at dette forhindret Binances automatiserte hot-wallet-kø fra å feile på grunn av utilstrekkelig gass og dermed utløse alarmer.
Teknisk Detaljering
Analysen beskrev en token-behandlingssløyfe som sjekket saldoer gjennom lavnivåanrop og fortsatte selv når individuelle operasjoner feilet. CyberSatoshi sa at dette tillot sweeperen å fortsette å behandle eiendeler, selv om en svartelistet eller på annen måte uresponsiv token ikke kunne overføres.
En tilpasset utførelsesfunksjon angivelig lot den kompromitterte lommeboken ringe et eksternt valv som holdt $823 millioner i USDC. I plakats forklaring gjenkjente valvet Binance 14 som sin kontroller, noe som tillot anrop gjort gjennom den lommeboken å nå midler utenfor dens umiddelbare saldo.
CyberSatoshi karakteriserte kontrakten som spesialbygd for Binances arkitektur. Påstandene om dens effekt på interne varsler og kassesystemer forblir uklare i plakats forklaring på hvordan operasjonen fungerte.
Delegeringsfunksjonens Risiko
Ethereums EIP-7702-spesifikasjon beskriver en transaksjonstype som lar en eksternt eid konto delegere utførelse til kode distribuert på en annen adresse. En eksternt eid konto opererer normalt gjennom signaturer fra sin private nøkkel. Delegering lar den utføre smart-kontraktlogikk i sin egen kontosammenheng, og støtter funksjoner som å samle flere operasjoner i én transaksjon og la en annen konto betale transaksjonsgebyrer.
Hver autorisasjon identifiserer en kjede, en delegeringsadresse og en nonce, sammen med en kryptografisk signatur. Protokollen gjenoppretter den autoriserende kontoen fra den signaturen og sjekker dens nonce før den anvender delegeringen.
CyberSatoshi anerkjente dette kravet, og sa at det angivelige angrepet krevde enten den rå private nøkkelen eller ubegrenset signeringstilgang til Binances sikkerhetsinfrastruktur. Spesifikasjonen fastsetter ikke hvordan noen Binance signeringslegitimasjoner ble oppnådd.
Dens signaturkrav fastsetter at delegering ikke kan tildeles en vilkårlig konto uten gyldig autorisasjon. CyberSatoshi hevdet at angriperen sendte 50 forhånds-signerte autorisasjoner som dekket påfølgende nonces for å fange Binance 14 mens dens transaksjonsantall var i endring.
Konklusjon
CyberSatoshi argumenterte for at delegering komprimerte eiendomsoverføringene til en enkelt operasjon, noe som reduserte tiden tilgjengelig for inngripen. EIP-forfatterne advarer eksplisitt om at autorisert kode har ubegrenset tilgang til kontoen og må revideres nøye av lommeboken. Dårlig implementert delegering kan etterlate en angriper med nesten full kontroll over den signerende kontoen.
Delegering vedvarer utover transaksjonen som installerer den. Spesifikasjonen fastsetter videre at en utførelsesfeil ikke ruller tilbake delegeringsindikatorer som allerede er behandlet. For å fjerne delegering tillater protokollen en gyldig autorisasjon som peker til nulladressen, som fjerner kontoens delegeringskode.