Trendande ämnen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Välkommen tillbaka till Sherlocks Vulnerability Spotlight, där vi lyfter fram en effektfull sårbarhet som upptäcktes under en Sherlock-granskning.
Den här veckan har vi Deposit Spoofing.
Det avslöjades av @0xalpharush & @bernd_eth på @zetablockchain Cross-Chain Contest. 🧵

Här är @bernd_eth:s sammanfattning av sårbarheten:
1. ZetaChains observatörer övervakar transaktioner på externa kedjor (t.ex. Ethereum, Solana) och lägger till dem i en centraliserad inkommande spårare för att behandla dem som insättningar och uttag, förutsatt att transaktionen lyckas.
2. Till skillnad från EVM-integrationen hoppar Solanas implementering över transaktionsframgångskontroller, vilket gör det möjligt för en illvillig observatör att lägga till misslyckade insättningar, prägla ZRC20 SOL utan stöd och dränera överbryggade medel.
3. Trots att observatörer uttryckligen tillåts av ZetaChain är det viktigt att se till att ingen enskild part kan äventyra kedjan eller sifontillgångar.
Normalt bearbetar observatörer inte misslyckade transaktioner, men den här kodvägen kan inte utföra samma validering som sin EVM-motsvarighet. Även om detta kräver en "privilegierad" roll, är varje validerare en observatör, och BFT-konsensus är tänkt att vara bysantinskt tolerant, dvs. tolerera <1/3 illvilliga parter. Således bör en illvillig observatör inte kunna förfalska en insättning och förmå ärliga validerare att rösta för att prägla ZRC20 Sol för misslyckade transaktioner genom den inkommande spåraren, som saknar valideringar för sin Solana-implementering.
Grundorsaken till den här säkerhetsrisken:
Funktionen ProcessInboundEvents kräver inte att en transaktion har lyckats, till skillnad från den inkommande EVM-observatören, som gör detta korrekt här. Eftersom instruktionen avkodas som om den lyckades, kan en illvillig observatör förfalska en insättning för hela ZRC20-SOL-saldot och sedan ta ut SOL som är låst på Solana-sidan av bron och stjäla alla lampor i bron. Denna attack kan också användas för att ta ut SPL-tokens eller utföra godtyckliga insättningar och samtal. Om du till exempel tar bort den skrivbara egenskapen från gatewayens PDA i insättningsinstruktionen resulterar det i en misslyckad transaktion (se fästpunktsbegränsningsfelet i POC), och den kan fortfarande bearbetas när den har lagts till i den inkommande spåraren via MsgAddInboundTracker.
Interna förutsättningar:
En illvillig eller försumlig observatör lägger till en misslyckad Solana tx som innehåller Gateway-instruktioner till den inkommande spåraren med hjälp av MsgAddInboundTracker, vilket resulterar i att alla validerare bearbetar och röstar för att prägla ZRC20 Sol på Zetachain.
CCTX får tillräckligt med röster, och ostödd ZRC20 Sol på Zetachain präglas.
Externa förutsättningar:
Alla parter skickar en misslyckad transaktion till gatewayen med en insättningsinstruktion (eller insättning och samtal).
Mottagaren av ZRC20 Sol på Zetachain tar ut den och får lamports på Solana.
Attackens väg:
1) Alla parter skickar en misslyckad transaktion till gatewayen med en insättningsinstruktion (eller insättning och samtal).
2) En illvillig eller försumlig observatör lägger till en misslyckad Solana tx som innehåller Gateway-instruktioner till den inkommande spåraren med hjälp av MsgAddInboundTracker, vilket resulterar i att alla validerare bearbetar och röstar för att prägla ZRC20 Sol på Zetachain.
3) Aktiviteten ProcessInboundTrackers gör att den falska CCTX får tillräckligt med röster, och ouppbackad ZRC20 Sol på Zetachain präglas.
4) Mottagaren av ZRC20 Sol på Zetachain tar ut den och tar emot lampor på Solana.
Vad är effekten?
Alla lamports och SPL-tokens som deponeras i Solana-bron kan bli stulna, med tanke på att insättningar kan förfalskas för vilket belopp som helst (de behandlas trots att Gateway-programmet får transaktionerna att återställas).
Åtgärden:
I Solana Observers inkommande spårningsbearbetning, kontrollera om transaktionen är framgångsrik innan du röstar om den.

Vi är stolta över att ha hjälpt till att säkra @zetablockchain genom denna upptäckt.
När det absolut måste vara säkert är Sherlock det rätta valet.
2,62K
Topp
Rankning
Favoriter