Uppdelning: Hur hackaren stal 80k ETH från Solana Wormhole-bryggan PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Uppdelning: Hur hackaren stal 80k ETH från Solana Wormhole-bron

En av de värsta hacka mot Solana-blockkedjan hände i onsdags när en hacker lyckades överföra 80,000 214 eter (ETH), över XNUMX miljoner dollar i skrivande stund, ut ur Solana-systemet och in i Ethereum-blockkedjan genom Wormhole-bron – en tjänst som ger möjlighet att överföra medel mellan de olika blockkedjorna.

Förklarat i en tweet gänga av den pseudonyma Twitter-profilen smarta kontrakt, avslutade hackaren utnyttjandet genom att överföra 80,000 XNUMX ETH från Wormhole smarta kontrakt på Ethereum i en enda transaktion. Som det visade sig var detta bara det sista steget i en serie hack som gjorde det möjligt för hackaren att stjäla pengarna. 

"Även om det är dramatiskt är den här transaktionen bara slutet på en intressant serie händelser. Jag var tvungen att börja arbeta mig bakåt för att ta reda på hur detta ens var möjligt”, twittrar smartcontracts.

Guardians undertecknade en falsk överföring

Maskhål är en så kallad bro, en smart kontrakt, på Ethereum i det här fallet, som ger ett sätt att flytta kryptotillgångar mellan olika blockkedjor. Enligt smarta kontrakt, ur en synvinkel på hög nivå, har Wormhole specifikt en uppsättning så kallade väktare som kvitterar på överföringar mellan blockkedjorna.

Wormhole-väktarna hade på något sätt skrivit på denna överföring på 80,000 100 ETH som om den var XNUMX % legitim.

"Transaktionen som drog ut 80,000 XNUMX ETH var faktiskt angriparen som överförde 80,000 XNUMX ETH från Solana till Ethereum. Jag trodde ursprungligen att kontraktet kan ha felaktigt validerat underskrifterna på överföringen, men underskrifterna [var] helt utcheckade."

Enligt smartcontracts kom det första genombrottet och delförklaringen från en transaktion på Solana som på något sätt präglade 120,000 XNUMX "Wormhole ETH", inlindad eter på Solana, från ingenstans. Eftersom hackaren kunde prägla Wormhole ETH på Solana, kunde han korrekt dra tillbaka det till Ethereum.

"Solana är lite konstig"

När man undersöker hackarens transaktionshistorik, finns det en transaktion som kom precis innan prägeln av 120,000 XNUMX Wormhole ETH. I denna transaktion, hackaren slår endast 0.1 Wormhole ETH, som om hackaren testade funktionen med en liten mängd.

En ytterligare undersökning av hackarens transaktionshistorik avslöjar att hackaren gjorde en deposition på 0.1 ETH från Ethereum till Solana. Även om angriparen inte gjorde en ETH-insättning på 120,000 XNUMX ETH i Wormholes smarta kontrakt på Ethereum, så finns det något intressant med denna insättning.

Som smartcontract förklarar i sin tweet, utlöste transaktionerna som skapade Wormhole ETH på Solana ett Wormhole smart kontrakt fungera kallas "complete_wrapped". En av parametrarna som denna funktion tar är ett "överföringsmeddelande", i princip ett meddelande undertecknad av brons väktare som säger vilken pollett som ska präglas och hur mycket.

"Solana är lite konstig, så dessa parametrar är faktiskt smarta kontrakt i sig. Men det viktiga är hur dessa "överföringsmeddelande"-kontrakt skapas. Här är transaktion som gjorde 0.1 ETH-överföringsmeddelandet”, twittrar smartcontracts.

Vem kollar pjäserna?

Detta "överföringsmeddelande"-kontrakt skapas genom att trigga en fungera kallas "post_vaa". Det viktigaste är att post_vaa kontrollerar om meddelandet är giltigt genom att kontrollera signaturerna från vårdnadshavarna. Den delen verkar rimlig nog, säger smartcontracts, men det är det här signaturkontrollsteget som bröt allt.

Funktionen "post_vaa" kontrollerar faktiskt inte signaturerna. Istället, på typiskt Solana-sätt, finns det ett annat smart kontrakt som skapas genom att kalla "verifiera_signaturer" fungera. En av ingångar till funktionen "verify_signatures" finns ett Solana inbyggt "system"-program som innehåller olika verktyg som kontraktet kan använda.

Inom "verify_signatures" försöker Wormhole-programmet kontrollera att exekveringen som skedde precis innan den här funktionen triggades var att Secp256k1 signaturverifieringsfunktionen utfördes.

"Denna verifieringsfunktion är ett inbyggt verktyg som ska verifiera att de givna signaturerna är korrekta. Så signaturverifieringen har lagts ut på det här programmet. Men det är här felet kommer in”, twittrar smartcontracts.

Maskhålskontrakten använde funktionen ladda_instruktion_at för att kontrollera att Secp256k1-funktionen anropades först, men load_instruction_at-funktionen fasades ut relativt nyligen eftersom den kontrollerar inte att det körs mot den faktiska systemadressen!

Spel över

Enligt smartcontracts ska den som ringer tillhandahålla som ingång systemadressen till programmet som körs, men hackaren angav en annan systemadress.

Här är den systemadressen som används som indata för "verify_signatures" för den legitima insättningen av 0.1 ETH:

Korrekt inmatning av systemadress
Korrekt inmatning av systemadress

Men här är "verify_signatures"-transaktionen för den falska insättningen på 120k ETH:

Systemadressinmatning
Falsk systemadressinmatning 

Det är inte systemadressen!

"Genom att använda detta "falska" systemprogram kunde angriparen effektivt ljuga om det faktum att signaturkontrollprogrammet kördes. Signaturerna kontrollerades inte alls!,” twittrar smartcontracts.

"Efter den punkten var det slut på matchen. Angriparen fick det att se ut som att väktarna hade skrivit på en insättning på 120k i Wormhole på Solana, även om de inte hade gjort det. Allt angriparen behövde göra nu var att göra sina "spel"-pengar riktiga genom att dra tillbaka dem till Ethereum. Och ett uttag av 80k ETH + 10k ETH senare (allt i bron på Ethereum), allt var borta."

everdome

CryptoSlate nyhetsbrev

Med en sammanfattning av de viktigaste dagliga berättelserna i världen av krypto, DeFi, NFT och mer.

Få en kanten på kryptoasset-marknaden

Få tillgång till mer kryptoinsikter och sammanhang i varje artikel som betald medlem av CryptoSlate Edge.

Analys på kedjan

Pris snapshots

Mer sammanhang

Gå med nu för $ 19 / månad Utforska alla fördelar

Källa: https://cryptoslate.com/breakdown-how-the-hacker-stole-80k-eth-from-the-solana-wormhole-bridge/

Tidsstämpel:

Mer från CryptoSlate