Varning om Farlig Kod
Cardano-grundaren Charles Hoskinson har varnat för ”allvarligt farlig kod” och delat en analys som pekar på Ethereums EIP-7702-delegationsfunktion som en potentiell hjälp för angripare att snabbt tömma en Binance-hotplånbok.
I sitt inlägg på X skrev Hoskinson: ”Var försiktig, det finns allvarligt farlig kod där ute,” ovanför en sammanställning publicerad av CyberSatoshi.
Analys av CyberSatoshi
Inlägget han delade beskrev rekonstruerad bytekod för en påstådd Binance EIP-7702 sweeper och hävdade att kontraktet var skräddarsytt för börsens verksamhet. Hoskinsons meddelande identifierade inte en specifik protokollbrist eller förklarade vilken del av analysen han stödde.
CyberSatoshis konto ställer två säkerhetsfrågor bredvid varandra: den ena handlar om hur en angripare fick tillstånd att agera för plånboken, och den andra handlar om vad Ethereums delegationsfunktion tillät angriparen att göra efter att ha fått det tillståndet.
Enligt CyberSatoshis sammanställning lämnade det rekonstruerade kontraktet exakt 1 ETH i plånboken när det svepte sitt inhemska saldo. Inlägget hävdade att detta förhindrade Binance automatiserade hotplånboks kö från att misslyckas på grund av otillräcklig gas och att larm utlöses.
Tokenbehandlingsloop och Exekveringsfunktion
Analysen beskrev en tokenbehandlingsloop som kontrollerade saldon genom lågnivåanrop och fortsatte även när individuella operationer misslyckades. CyberSatoshi påstod att detta gjorde att sweepern kunde fortsätta bearbeta tillgångar även om en svartlistad eller på annat sätt oresponsiv token inte kunde överföras.
En anpassad exekveringsfunktion påstods låta den komprometterade plånboken anropa ett externt valv som innehöll 823 miljoner dollar i USDC. I inläggets förklaring erkände valvet Binance 14 som sin kontrollant, vilket gjorde att anrop som gjordes genom den plånboken kunde nå medel utanför dess omedelbara saldo.
Delegation och Säkerhetsrisker
Ethereums EIP-7702-specifikation beskriver en transaktionstyp som låter ett externt ägt konto delegera exekvering till kod som distribuerats på en annan adress. Ett externt ägt konto fungerar normalt genom signaturer från sin privata nyckel. Delegation gör det möjligt att exekvera smart kontraktslogik i sitt eget kontots sammanhang, vilket stöder funktioner som att gruppera flera operationer i en transaktion och låta ett annat konto betala transaktionsavgifter.
CyberSatoshi erkände att den påstådda attacken behövde antingen den råa privata nyckeln eller obegränsad signeringstillgång till Binances säkerhetsinfrastruktur. Specifikationen fastställer inte hur några Binance-signaturuppgifter erhölls.
CyberSatoshi hävdade att angriparen skickade 50 försignerade auktoriseringar som täckte på varandra följande nonces för att fånga Binance 14 medan dess transaktionsantal förändrades. Specifikationen bearbetar auktoriseringar i ordning, och när en auktorisering misslyckas med en kontroll fortsätter bearbetningen med nästa post.
Slutsats
Delegation kvarstår bortom den transaktion som installerar den. Specifikationen anger vidare att ett exekveringsfel inte rullar tillbaka delegationindikatorer som redan har bearbetats. För att ta bort delegation tillåter protokollet en giltig auktorisering som pekar på nolladressen, vilket rensar kontots delegationskod.