Populaire onderwerpen
#
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.
Welkom terug bij Sherlock's Vulnerability Spotlight, waar we een impactvolle kwetsbaarheid belichten die is ontdekt tijdens een Sherlock-audit.
Deze week hebben we Deposit Spoofing.
Het werd ontdekt door @0xalpharush & @bernd_eth tijdens de @zetablockchain Cross-Chain Contest. 🧵

Hier is de samenvatting van de kwetsbaarheid door @bernd_eth:
1. De waarnemers van ZetaChain monitoren transacties op externe ketens (bijv. Ethereum, Solana) en voegen deze toe aan een gecentraliseerde inkomende tracker om ze te verwerken als stortingen en opnames, ervan uitgaande dat de transactie succesvol is.
2. In tegenstelling tot de EVM-integratie, slaat de implementatie van Solana de controles op transactie-succes over, waardoor een kwaadaardige waarnemer mislukte stortingen kan toevoegen, ongedekte ZRC20 SOL kan minten en gebridge fondsen kan afromen.
3. Ondanks dat waarnemers expliciet zijn toegestaan door ZetaChain, is het cruciaal om ervoor te zorgen dat geen enkele partij de keten kan compromitteren of activa kan afromen.
Normaal gesproken verwerken waarnemers geen mislukte transacties, maar dit codepad slaagt er niet in dezelfde validatie uit te voeren als zijn EVM-tegenhanger. Hoewel dit een "privileged" rol vereist, is elke validator een waarnemer, en BFT-consensus zou byzantijns tolerant moeten zijn, d.w.z. <1/3 kwaadaardige partijen tolereren. Dus zou één kwaadaardige waarnemer niet in staat moeten zijn om een storting te vervalsen en eerlijke validators te induceren om te stemmen om ZRC20 Sol te minten voor mislukte transacties via de inkomende tracker, die geen validaties heeft voor zijn Solana-implementatie.
De onderliggende oorzaak van deze kwetsbaarheid:
De functie ProcessInboundEvents vereist niet dat een transactie is geslaagd, in tegenstelling tot de EVM inbound observer, die dit hier correct doet. Aangezien de instructie wordt gedecodeerd alsof deze is geslaagd, kan een kwaadaardige waarnemer een storting voor het volledige ZRC20-SOL saldo vervalsen en vervolgens de SOL die is vergrendeld aan de Solana-kant van de brug opnemen, waardoor alle lamports in de brug worden gestolen. Deze aanval kan ook worden gebruikt om SPL-tokens op te nemen of willekeurige stortingen en oproepen uit te voeren. Bijvoorbeeld, het verwijderen van de schrijfbare eigenschap van de PDA van de gateway in de stortingsinstructie resulteert in een mislukte transactie (zie de anchor constraint error in de POC), en het kan nog steeds worden verwerkt zodra het is toegevoegd aan de inbound tracker via MsgAddInboundTracker.
Interne Voorwaarden:
Een kwaadaardige of nalatige waarnemer voegt een mislukte Solana tx toe die Gateway-instructies bevat aan de inkomende tracker met behulp van MsgAddInboundTracker, wat ertoe leidt dat alle validators verwerken en stemmen om ZRC20 Sol op Zetachain te minten.
De CCTX ontvangt voldoende stemmen, en onbeveiligde ZRC20 Sol op Zetachain wordt gemint.
Externe Voorwaarden:
Elke partij stuurt een mislukte transactie naar de gateway met een stortingsinstructie (of storting en oproep).
De ontvanger van de ZRC20 Sol op Zetachain trekt deze terug en ontvangt lamports op Solana.
Het Aanvalspad:
1) Elke partij stuurt een mislukte transactie naar de gateway met een stortingsinstructie (of storting en oproep).
2) Een kwaadaardige of nalatige waarnemer voegt een mislukte Solana tx toe die Gateway-instructies bevat aan de inkomende tracker met behulp van MsgAddInboundTracker, wat ertoe leidt dat alle validators verwerken en stemmen om ZRC20 Sol op Zetachain te minten.
3) De taak ProcessInboundTrackers zorgt ervoor dat de vervalste CCTX voldoende stemmen ontvangt, en niet-gedekte ZRC20 Sol op Zetachain wordt gemint.
4) De ontvanger van de ZRC20 Sol op Zetachain trekt deze terug en ontvangt lamports op Solana.
Wat is de impact?
Alle lamports en SPL-tokens die in de Solana-brug zijn gestort, kunnen worden gestolen, aangezien stortingen voor elk bedrag kunnen worden vervalst (ze worden verwerkt ondanks dat het Gateway-programma de transacties laat terugdraaien).
De Mitigatie:
Controleer in de inkomende trackerverwerking van de Solana Observer of de transactie succesvol is voordat je erover stemt.

We zijn er trots op @zetablockchain te hebben geholpen met deze ontdekking.
Wanneer het absoluut veilig moet zijn, is Sherlock de juiste keuze.
2,54K
Boven
Positie
Favorieten