Velkommen tilbake til Sherlocks Vulnerability Spotlight, hvor vi fremhever en virkningsfull sårbarhet som ble avdekket under en Sherlock-revisjon. Denne uken har vi Deposit Spoofing. Det ble avdekket av @0xalpharush & @bernd_eth på @zetablockchain Cross-Chain Contest. 🧵
Her er @bernd_eth oppsummering av sårbarheten: 1. ZetaChains observatører overvåker transaksjoner på eksterne kjeder (f.eks. Ethereum, Solana) og legger dem til en sentralisert innkommende tracker for å behandle dem som innskudd og uttak, forutsatt at transaksjonen lykkes. 2. I motsetning til EVM-integrasjonen, hopper Solanas implementering over transaksjonssuksesssjekker, slik at en ondsinnet observatør kan legge til mislykkede innskudd, prege ustøttet ZRC20 SOL og tappe broede midler. 3. Til tross for at observatører eksplisitt er tillatt oppført av ZetaChain, er det avgjørende å sikre at ingen enkelt part kan kompromittere kjeden eller sifon-eiendeler.
Normalt behandler ikke observatører mislykkede transaksjoner, men denne kodebanen klarer ikke å utføre samme validering som EVM-motparten. Selv om dette krever en "privilegert" rolle, er hver validator en observatør, og BFT-konsensus er ment å være bysantinsk tolerant, det vil si tolerere < 1/3 ondsinnede parter. Dermed bør en ondsinnet observatør ikke være i stand til å forfalske et innskudd og få ærlige validatorer til å stemme for å lage ZRC20 Sol for mislykkede transaksjoner gjennom den innkommende trackeren, som mangler valideringer for Solana-implementeringen.
Årsaken til dette sikkerhetsproblemet: ProcessInboundEvents-funksjonen krever ikke at en transaksjon er vellykket, i motsetning til den innkommende EVM-observatøren, som gjør dette riktig her. Siden instruksjonen er dekodet som om den lyktes, kan en ondsinnet observatør forfalske et depositum for hele ZRC20-SOL-saldoen og deretter ta ut SOL-en som er låst på Solana-siden av broen, og stjele alle lamporter i broen. Dette angrepet kan også brukes til å ta ut SPL-tokens eller utføre vilkårlige innskudd og samtaler. Hvis du for eksempel fjerner den skrivbare egenskapen fra gatewayens PDA i innskuddsinstruksjonen, resulterer det i en mislykket transaksjon (se ankerbegrensningsfeilen i POC), og den kan fortsatt behandles når den er lagt til i den innkommende sporingen via MsgAddInboundTracker.
Interne forutsetninger: En ondsinnet eller uaktsom observatør legger til en mislykket Solana tx som inneholder Gateway-instruksjoner til den innkommende trackeren ved hjelp av MsgAddInboundTracker, noe som resulterer i at alle validatorer behandler og stemmer for å lage ZRC20 Sol på Zetachain. CCTX får tilstrekkelig med stemmer, og ustøttet ZRC20 Sol på Zetachain er preget.
Eksterne forutsetninger: Enhver part sender en mislykket transaksjon til gatewayen med en innskuddsinstruksjon (eller innskudd og ring). Mottakeren av ZRC20 Sol på Zetachain trekker den tilbake og mottar lamports på Solana.
Angrepsbanen: 1) Enhver part sender en mislykket transaksjon til gatewayen med en innskuddsinstruksjon (eller innskudd og ring). 2) En ondsinnet eller uaktsom observatør legger til en mislykket Solana-tx som inneholder Gateway-instruksjoner til den innkommende trackeren ved hjelp av MsgAddInboundTracker, noe som resulterer i at alle validatorer behandler og stemmer for å lage ZRC20 Sol på Zetachain. 3) ProcessInboundTrackers-oppgaven fører til at den forfalskede CCTX-en får nok stemmer, og ustøttet ZRC20 Sol på Zetachain blir preget. 4) Mottakeren av ZRC20 Sol på Zetachain trekker den tilbake og mottar lamports på Solana.
Hva er virkningen? Alle lamports og SPL-tokens som er satt inn i Solana-broen kan bli stjålet, gitt at innskudd kan forfalskes for et hvilket som helst beløp (de behandles til tross for at Gateway-programmet får transaksjonene til å gå tilbake).
Avbøtende tiltak: I Solana Observers innkommende sporingsbehandling, sjekk om transaksjonen er vellykket før du stemmer på den.
Vi er stolte over å ha bidratt til å sikre @zetablockchain gjennom dette funnet. Når det absolutt må være sikkert, er Sherlock det riktige valget.
Vis originalen
8,03k
17
Innholdet på denne siden er levert av tredjeparter. Med mindre annet er oppgitt, er ikke OKX forfatteren av de siterte artikkelen(e) og krever ingen opphavsrett til materialet. Innholdet er kun gitt for informasjonsformål og representerer ikke synspunktene til OKX. Det er ikke ment å være en anbefaling av noe slag og bør ikke betraktes som investeringsråd eller en oppfordring om å kjøpe eller selge digitale aktiva. I den grad generativ AI brukes til å gi sammendrag eller annen informasjon, kan slikt AI-generert innhold være unøyaktig eller inkonsekvent. Vennligst les den koblede artikkelen for mer detaljer og informasjon. OKX er ikke ansvarlig for innhold som er vert på tredjeparts nettsteder. Beholdning av digitale aktiva, inkludert stablecoins og NFT-er, innebærer en høy grad av risiko og kan svinge mye. Du bør nøye vurdere om handel eller innehav av digitale aktiva passer for deg i lys av din økonomiske tilstand.