Tervetuloa takaisin Sherlockin haavoittuvuuksien valokeilaan, jossa nostamme esiin Sherlock-tarkastuksessa paljastuneen vaikuttavan haavoittuvuuden.
Tällä viikolla meillä on talletushuijaus.
Sen paljasti @0xalpharush & @bernd_eth @zetablockchain Cross-Chain Contest -tapahtumassa. 🧵

Tässä on @bernd_eth yhteenveto haavoittuvuudesta:
1. ZetaChainin tarkkailijat seuraavat ulkoisten ketjujen (esim. Ethereum, Solana) transaktioita ja lisäävät ne keskitettyyn saapuvan seurannan tietoihin käsitelläkseen ne talletuksina ja nostoina olettaen, että tapahtuma onnistuu.
2. Toisin kuin EVM-integraatio, Solanan toteutus ohittaa tapahtumien onnistumisen tarkistukset, jolloin pahantahtoinen tarkkailija voi lisätä epäonnistuneita talletuksia, lyödä vakuudettomia ZRC20 SOL:ia ja tyhjentää siltattuja varoja.
3. Huolimatta siitä, että ZetaChain on nimenomaisesti sallinut tarkkailijat, on tärkeää varmistaa, että mikään yksittäinen osapuoli ei voi vaarantaa ketjua tai sifonia.
Normaalisti tarkkailijat eivät käsittele epäonnistuneita tapahtumia, mutta tämä koodipolku ei suorita samaa vahvistusta kuin EVM-vastineensa. Vaikka tämä edellyttää "etuoikeutettua" roolia, jokainen validoija on tarkkailija, ja BFT:n konsensuksen oletetaan olevan bysanttilaista suvaitsevaista, eli sietää <1/3 pahantahtoisia osapuolia. Näin ollen yhden pahantahtoisen tarkkailijan ei pitäisi pystyä väärentämään talletusta ja houkuttelemaan rehellisiä validoijia äänestämään ZRC20 Solin lyömisestä epäonnistuneista tapahtumista saapuvan seurannan kautta, jolla ei ole validointia sen Solana-toteutukselle.
Tämän haavoittuvuuden perimmäinen syy:
ProcessInboundEvents-funktio ei edellytä tapahtuman onnistumista, toisin kuin EVM:n saapuva tarkkailija, joka tekee tämän oikein tässä. Koska käsky puretaan ikään kuin se olisi onnistunut, pahantahtoinen tarkkailija voi huijata talletuksen koko ZRC20-SOL-saldolle ja sitten nostaa sillan Solana-puolelle lukitun SOL:n varastaen kaikki sillan lampit. Tätä hyökkäystä voidaan käyttää myös SPL-tokenien nostamiseen tai mielivaltaisten talletusten ja puheluiden suorittamiseen. Esimerkiksi kirjoitettavan ominaisuuden poistaminen yhdyskäytävän PDA:sta talletusohjeessa johtaa epäonnistuneeseen tapahtumaan (katso ankkurirajoitusvirhe POC:ssa), ja se voidaan silti käsitellä, kun se on lisätty saapuvan seurannan MsgAddInboundTrackerin kautta.
Sisäiset edellytykset:
Pahantahtoinen tai huolimaton tarkkailija lisää epäonnistuneen Solana tx:n, joka sisältää yhdyskäytävän käskyt saapuvaan seurantaan MsgAddInboundTrackerin avulla, jolloin kaikki validoijat käsittelevät ja äänestävät ZRC20 Solin lyömiseksi Zetachainissa.
CCTX saa riittävästi ääniä, ja Zetachainissa lyödään tukematonta ZRC20 Solia.
Ulkoiset edellytykset:
Mikä tahansa osapuoli lähettää epäonnistuneen tapahtuman yhdyskäytävään talletusohjeen (tai talletuksen ja puhelun) kanssa.
ZRC20 Solin vastaanottaja Zetachainissa vetää sen pois ja vastaanottaa lampteja Solanassa.
Hyökkäysreitti:
1) Mikä tahansa osapuoli lähettää epäonnistuneen tapahtuman yhdyskäytävään talletusohjeella (tai talletuksella ja puhelulla).
2) Pahantahtoinen tai huolimaton tarkkailija lisää epäonnistuneen Solana tx:n, joka sisältää yhdyskäytävän käskyt saapuvaan seurantaan MsgAddInboundTrackerin avulla, jolloin kaikki validoijat käsittelevät ja äänestävät ZRC20 Solin lyömiseksi Zetachainissa.
3) ProcessInboundTrackers-tehtävä saa väärennetyn CCTX:n saamaan riittävästi ääniä, ja Zetachainin tukematon ZRC20 Sol lyödään.
4) ZRC20 Solin vastaanottaja Zetachainissa nostaa sen pois ja vastaanottaa lampteja Solanassa.
Mikä on vaikutus?
Kaikki Solana-sillalle talletetut lamportit ja SPL-tokenit voidaan varastaa, koska talletuksia voidaan väärentää millä tahansa summalla (ne käsitellään, vaikka Gateway-ohjelma aiheuttaa tapahtumien palautumisen).
Lievennys:
Tarkista Solana Observerin saapuvan seurannan käsittelyssä, onko tapahtuma onnistunut ennen kuin äänestät siitä.

Olemme ylpeitä siitä, että olemme auttaneet turvaamaan @zetablockchain tämän löydön kautta.
Kun sen on ehdottomasti oltava turvallinen, Sherlock on oikea valinta.
7,79 t.
17
Tällä sivulla näytettävä sisältö on kolmansien osapuolten tarjoamaa. Ellei toisin mainita, OKX ei ole lainatun artikkelin / lainattujen artikkelien kirjoittaja, eikä OKX väitä olevansa materiaalin tekijänoikeuksien haltija. Sisältö on tarkoitettu vain tiedoksi, eikä se edusta OKX:n näkemyksiä. Sitä ei ole tarkoitettu minkäänlaiseksi suositukseksi, eikä sitä tule pitää sijoitusneuvontana tai kehotuksena ostaa tai myydä digitaalisia varoja. Siltä osin kuin yhteenvetojen tai muiden tietojen tuottamiseen käytetään generatiivista tekoälyä, tällainen tekoälyn tuottama sisältö voi olla epätarkkaa tai epäjohdonmukaista. Lue aiheesta lisätietoa linkitetystä artikkelista. OKX ei ole vastuussa kolmansien osapuolten sivustojen sisällöstä. Digitaalisten varojen, kuten vakaakolikoiden ja NFT:iden, omistukseen liittyy suuri riski, ja niiden arvo voi vaihdella merkittävästi. Sinun tulee huolellisesti harkita, sopiiko digitaalisten varojen treidaus tai omistus sinulle taloudellisessa tilanteessasi.