Sui-Chain-DeFi-Kreditverleih-Protokoll Scallop wird gehackt, eine Schwachstelle im alten Vertragswerk führt zu Diebstahl von 150.000 SUI

SUI2,44%
LTC1,36%

Sui 链上的 DeFi-Kreditverleihprotokoll Scallop hat auf dem offiziellen X-Konto (@Scallop_io) eine Benachrichtigung über einen Sicherheitsvorfall veröffentlicht und damit bestätigt, dass der Plattform ein Angriff zum Opfer gefallen ist. Scallop erklärte, dass das Team einen ausgenutzten Seitenvertrag (side contract) gefunden habe, der mit dem sSUI-Spool-Belohnungspool zusammenhängt, was zu einem Verlust von etwa 150.000 SUI geführt habe. Scallop betonte, dass der betroffene Vertrag eingefroren wurde, der Kernvertrag weiterhin sicher sei und lediglich der sSUI-Belohnungspool betroffen gewesen sei.

In einem anschließenden Update erklärte Scallop weiter: „Der Kernvertrag ist wieder aufgetaut, und alle Operationen sind wiederhergestellt. Dieses Problem steht nicht mit der Kernvereinbarung in Zusammenhang und betrifft lediglich einen veralteten Belohnungsvertrag. Die Benutzereinlagen sind nicht betroffen, alle Gelder sind sicher, und die Ein- und Auszahlung-Funktionen sind wieder normal.“ Das Team versprach, weitere Details zu teilen, und das Protokoll weiterhin zu überwachen und die Sicherheit zu stärken.

Ehemaliges NEAR-Kernmitglied Vadim: Das Problem liegt in dem alten Paket von vor 17 Monaten

Im Hinblick auf diesen Vorfall veröffentlichte der frühere NEAR-Kernentwickler Vadim (@zacodil) auf X eine ausführliche technische Analyse, die die Details der Sicherheitslücke aufdeckte. Vadim wies darauf hin, dass die Angreifer sehr genau wussten, welchen der veralteten Pakete sie aufrufen müssen. „Es handelt sich nicht um den aktuellen laufenden Code und auch nicht um einen SDK-Pfad, sondern um eine alte V2-Version von November 2023, die seit Monaten niemandem mehr genutzt hat. Entweder liegt das an intensiver Reverse-Engineering-Arbeit, oder jemand wusste schon lange, wonach man suchen muss. Diese Sicherheitslücke schlummert seit 17 Monaten.

Vadim erklärte, dass spool einen Index verfolgt, der mit der Zuteilung der Belohnungen wächst. Bei jeder Benutzerkonten-Instanz sollte beim Staking eigentlich der last_index zum jeweiligen Zeitpunkt erfasst werden, sodass die Berechnungsformel der verdienten Punkte lautet: Staked Amount × (current_index − last_index), und der Nutzer kann nur ab dem Zeitpunkt, an dem er beitritt, Belohnungen verdienen.

Doch in dem veralteten V2-Paket wird beim Erstellen eines brandneuen spool_account last_index nicht initialisiert und bleibt weiterhin bei 0. Daher ergibt sich bei der Ausführung von update_points das folgende Berechnungsergebnis: Punkte = Staked Amount × (current_index − 0) = Staked Amount × vollständiger historischer Index. Die Nutzer wurden damit mit allen Belohnungen erfasst, die seit dem Erstellen des spool im August 2023 angefallen waren.

Vadim lieferte konkrete Daten: Der spool-Index wuchs in 20 Monaten auf 1,19 Milliarden. Der Angreifer stakete 136.000 sSUI und erhielt sofort 162 Billionen Punkte verbucht. Da der Belohnungspool ein 1:1-Umtauschverhältnis verwendet (Zähler und Nenner sind beide 1), wurden 162 Billionen Punkte direkt in Belohnungen im Wert von 162.000 SUI umgewandelt. Aber im Belohnungspool waren nur 150.000 SUI vorhanden, sodass der Pool vollständig ausgen... [Text truncated]

4 月链上安全事件皆發生在周邊系統

Vadim erklärte, dass normale Nutzer über das SDK das neue Paket verwenden, und dass das neue Paket das Problem der last_index-Synchronisierung bereits behoben habe. Dass das alte V2-Paket dennoch weiterhin on-chain vorhanden ist, liegt daran, dass Sui-Pakete unveränderlich sind. — Sobald sie veröffentlicht sind, wird jede alte Version für immer aufrufbar sein. Die geteilten Spool- und RewardsPool-Objekte akzeptieren Aufrufe aus jeder Version. Die Angreifer umgehen das SDK und treffen direkt den Codepfad der alten Version.

Vadim ordnete dies als „Sui veraltete Paketklassenlücke“ ein. Er wies darauf hin, dass die korrekte Art der Behebung darin besteht, auf dem geteilten Objekt ein Versionsfeld hinzuzufügen und in jeder Funktion eine assert!(version == CURRENT_VERSION)-Prüfung einzubauen. Ohne dieses Mechanismus wird jede zuvor veröffentlichte Paketversion für immer eine aktive Angriffsfläche bleiben.

Vadim hob außerdem hervor, dass die meisten Angriffsvorfälle in diesem Monat nicht im Code der Kernvereinbarung entstanden sind, sondern in den umgebenden Systemen:

KelpDAO:RPC-Infrastruktur

Litecoin:MWEB-Privacy-Layer

Aethir:Zugriffskontrolle des Umgebungs-Transformators

Scallop:ein vergessenes altes Paket

Dieser Artikel „Sui 链 DeFi 借貸協議 Scallop 遭駭,舊版合約漏洞致 15 萬 SUI 被盜“ erschien erstmals in 链新闻 ABMedia.

Disclaimer: The information on this page may come from third-party sources and is for reference only. It does not represent the views or opinions of Gate and does not constitute any financial, investment, or legal advice. Virtual asset trading involves high risk. Please do not rely solely on the information on this page when making decisions. For details, see the Disclaimer.
Kommentieren
0/400
Keine Kommentare