Trend-Themen
#
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.
Willkommen zurück zu Sherlocks Vulnerability Spotlight, wo wir eine bedeutende Schwachstelle hervorheben, die während eines Sherlock-Audits entdeckt wurde.
In dieser Woche haben wir Deposit Spoofing.
Es wurde von @0xalpharush & @bernd_eth beim @zetablockchain Cross-Chain Contest entdeckt. 🧵

Hier ist die Zusammenfassung der Schwachstelle von @bernd_eth:
1. Die Beobachter von ZetaChain überwachen Transaktionen auf externen Ketten (z. B. Ethereum, Solana) und fügen sie einem zentralisierten eingehenden Tracker hinzu, um sie als Einzahlungen und Abhebungen zu verarbeiten, wobei sie von einem erfolgreichen Abschluss der Transaktion ausgehen.
2. Im Gegensatz zur EVM-Integration überspringt die Implementierung von Solana die Überprüfungen des Transaktionserfolgs, was es einem böswilligen Beobachter ermöglicht, fehlgeschlagene Einzahlungen hinzuzufügen, ungesicherte ZRC20 SOL zu minten und gebridgte Mittel abzuziehen.
3. Obwohl die Beobachter ausdrücklich von ZetaChain auf die Whitelist gesetzt sind, ist es entscheidend sicherzustellen, dass keine einzelne Partei die Kette kompromittieren oder Vermögenswerte abziehen kann.
Normalerweise verarbeiten Beobachter fehlgeschlagene Transaktionen nicht, aber dieser Codepfad versäumt es, die gleiche Validierung wie sein EVM-Pendant durchzuführen. Während dies eine "privilegierte" Rolle erfordert, ist jeder Validator ein Beobachter, und der BFT-Konsens soll byzantinisch tolerant sein, d.h. weniger als 1/3 böswillige Parteien tolerieren. Daher sollte ein böswilliger Beobachter nicht in der Lage sein, eine Einzahlung zu fälschen und ehrliche Validatoren dazu zu bringen, für die Prägung von ZRC20 Sol für fehlgeschlagene Transaktionen über den eingehenden Tracker zu stimmen, der keine Validierungen für seine Solana-Implementierung aufweist.
Die Hauptursache für diese Schwachstelle:
Die Funktion ProcessInboundEvents erfordert nicht, dass eine Transaktion erfolgreich war, im Gegensatz zum EVM-Inbound-Observer, der dies hier korrekt macht. Da der Befehl so dekodiert wird, als ob er erfolgreich war, kann ein böswilliger Beobachter eine Einzahlung für das gesamte ZRC20-SOL-Guthaben fälschen und dann das im Solana-Seite der Brücke gesperrte SOL abheben, wodurch alle Lamports in der Brücke gestohlen werden. Dieser Angriff könnte auch verwendet werden, um SPL-Token abzuheben oder beliebige Einzahlungen und Aufrufe durchzuführen. Zum Beispiel führt das Entfernen der schreibbaren Eigenschaft von PDAs des Gateways in der Einzahlungsanweisung zu einer fehlgeschlagenen Transaktion (siehe den Ankerbeschränkungsfehler im POC), und sie kann dennoch verarbeitet werden, sobald sie über MsgAddInboundTracker zum Inbound-Tracker hinzugefügt wird.
Interne Vorbedingungen:
Ein böswilliger oder nachlässiger Beobachter fügt einen fehlerhaften Solana-Transaktions (tx) hinzu, der Gateway-Anweisungen enthält, um den eingehenden Tracker mit MsgAddInboundTracker zu aktualisieren, was dazu führt, dass alle Validatoren verarbeiten und abstimmen, um ZRC20 Sol auf Zetachain zu minten.
Die CCTX erhält genügend Stimmen, und ungesicherte ZRC20 Sol auf Zetachain wird geminted.
Externe Vorbedingungen:
Jede Partei sendet eine fehlgeschlagene Transaktion an das Gateway mit einer Einzahlungsanweisung (oder Einzahlung und Anruf).
Der Empfänger des ZRC20 Sol auf Zetachain zieht es ab und erhält Lamports auf Solana.
Der Angriffsweg:
1) Jede Partei sendet eine fehlgeschlagene Transaktion an das Gateway mit einer Einzahlungsanweisung (oder Einzahlung und Anruf).
2) Ein böswilliger oder nachlässiger Beobachter fügt eine fehlgeschlagene Solana-Transaktion hinzu, die Gateway-Anweisungen enthält, zum eingehenden Tracker unter Verwendung von MsgAddInboundTracker, was dazu führt, dass alle Validatoren verarbeiten und abstimmen, um ZRC20 Sol auf Zetachain zu minten.
3) Die Aufgabe ProcessInboundTrackers sorgt dafür, dass die gefälschte CCTX genügend Stimmen erhält und ungesichertes ZRC20 Sol auf Zetachain gemintet wird.
4) Der Empfänger des ZRC20 Sol auf Zetachain zieht es ab und erhält Lamports auf Solana.
Was ist die Auswirkung?
Alle Lamports und SPL-Token, die in die Solana-Brücke eingezahlt werden, können gestohlen werden, da Einzahlungen für jeden Betrag gefälscht werden können (sie werden verarbeitet, obwohl das Gateway-Programm dazu führt, dass die Transaktionen zurückgesetzt werden).
Die Minderung:
Überprüfen Sie im eingehenden Tracker-Prozess des Solana Observers, ob die Transaktion erfolgreich ist, bevor Sie darüber abstimmen.

Wir sind stolz darauf, @zetablockchain durch diese Entdeckung gesichert zu haben.
Wenn es absolut sicher sein muss, ist Sherlock die richtige Wahl.
2,54K
Top
Ranking
Favoriten