Zurück zum Blog

Tether Gold Smart Contract: Schwachstellen bei öffentlichen Transfers

Code Auditing
27. Mai 2023
3 Min. Lesezeit

Unsere interne Analyse-Tool hat am 5. April einen Fehler im Tether Gold Vertrag gefunden, der es einem Angreifer ermöglicht, XAUt (Tether Gold) Token von beliebigen Personen an eine vordefinierte Adresse zu übertragen. Das Team erhielt unseren Bericht und gab an, das Problem intern lokalisiert zu haben. Heute haben wir festgestellt, dass das Problem behoben wurde und möchten die Details hier mitteilen. Außerdem werden wir zeigen, wie man Phalcon Fork verwendet, um den PoC dieser Schwachstelle zu entwickeln und zu debuggen.

0x0. Die Schwachstelle

In der transferFrom-Funktion des Vertrags kann jeder diese Funktion aufrufen, um Token anderer Benutzer in eine vertrauenswürdige Empfangsadresse zu übertragen, die vom Token-Inhaber definiert wird. Obwohl diese Schwachstelle nicht direkt ausgenutzt werden kann, um Token auf das Konto des Angreifers zu übertragen, kann der Angreifer dennoch Token aus dem Pool übertragen, um den Tokenpreis im Pool (z.B. WETH-XAUt-Pool) zu manipulieren und davon zu profitieren.

Die Behebung dieser Schwachstelle ist einfach, wie im Folgenden gezeigt wird.

0x1. Wie die Schwachstelle ausgenutzt wird

Um den PoC zu schreiben und zu debuggen, können wir Phalcon Fork zu diesem Zweck verwenden. Zuerst können wir einen Fork erstellen, bevor die Schwachstelle gepatcht wird. Ich habe die Blockhöhe 17038763 verwendet, als ich den Fork über die Fork API erstellt habe.

Schritt I: Genügend Ether vorbereiten

Der erste Schritt ist, genügend Ether für die Gasgebühren des Ausnutzers zu besorgen. Wenn kein Ether im Konto vorhanden ist, wird die Transaktion, die Ether von vitalik.eth sendet, ausgegeben.

Schritt II: Die Eigentümerschaft des Tether Gold Vertrags übertragen

Der Eigentümer des Tether Gold Vertrags ist eine Multisig-Wallet (0xC6CDE7C39eB2f0F0095F41570af89eFC2C1Ea828). Um die Eigentümerschaft auf den Ausnutzer zu übertragen, müssen wir eine Multisig-Transaktion einreichen und dann die Transaktion bestätigen.

Schritt III: Ein berechtigtes Konto zum Tether Gold Vertrag hinzufügen

Wir haben ein neues Konto 0x189e7947a9d9210eec3a41dcf5f536bb1d7726f5 als berechtigtes Konto hinzugefügt. Anschließend rufen wir die transferFrom-Funktion auf, um XAUt-Token von einem Opfer an das berechtigte Konto zu übertragen.

0x2. PoC

Bitte finden Sie den PoC auf diesem GitHub:

Für die neuesten Informationen anmelden
Über die sichere Speicherung hinaus, Teil 2: Wallet-Kryptografie sicher implementieren
Security Insights

Über die sichere Speicherung hinaus, Teil 2: Wallet-Kryptografie sicher implementieren

Kann ein Angreifer einen privaten Schlüssel rekonstruieren, ohne dessen geschützte Kopie auszulesen? Teil 2 von Beyond Secure Storage untersucht sechs Vorfälle, bei denen schwache Zufallszahlen, Entropieverlust oder Fehler bei Signatur-Nonces Schlüssel vorhersagbar oder rekonstruierbar machten. Daraus leitet er Anforderungen an die Implementierung der Schlüsselerzeugung und des Signierens ab und erläutert anschließend, wie Zahlungsinstitute deren Einhaltung durch Code-Reviews und Tests des produktiv eingesetzten Systems überprüfen können.

Über sichere Speicherung hinaus, Teil 1: Sichere Zahlungs- und Signaturabläufe gestalten
Security Insights

Über sichere Speicherung hinaus, Teil 1: Sichere Zahlungs- und Signaturabläufe gestalten

Wie kann ein nicht autorisierter Vorgang eine gültige Signatur erhalten, ohne dass der Angreifer den privaten Schlüssel stiehlt? Teil 1 von Beyond Secure Storage untersucht anhand von Vorfällen bei Bitget, Bybit und Binance Autorisierungsfehler bei Zahlungsanforderungen, der Erstellung, Signierung und Ausführung von Transaktionen sowie bei deren Abwicklung. Daraus leitet er Gestaltungsprinzipien ab, um nicht autorisierte Vorgänge zu verhindern und Verluste zu begrenzen. Anschließend erläutert er, wie Überprüfungen, Audits, Penetrationstests und Übungen diese Schutzmaßnahmen verifizieren können.

NEAR-Intents-Exploit: Fehler bei der Rückerstattung und Lehren für die Sicherheit
Security Insights

NEAR-Intents-Exploit: Fehler bei der Rückerstattung und Lehren für die Sicherheit

Beim Exploit von NEAR Intents wurden überdimensionierte Rückerstattungsereignisse genutzt, um interne Guthaben zu erhalten, nachdem die eingezahlten Vermögenswerte zurückgegeben worden waren. Diese Analyse rekonstruiert den Ablauf der Receipts und sieben Auszahlungen auf der BNB Chain in Höhe von insgesamt 3.865.021 USDT. Sie unterscheidet diese Mittelabflüsse von der vom Projekt gemeldeten vollständigen Rückgewinnung der Mittel und erläutert Sicherheitsaspekte bei der Entwicklung und Prüfung von NEAR-Smart-Contracts.

Der beste Sicherheitsauditor für Web3

Lassen Sie Design, Code und Geschäftslogik vor dem Launch prüfen. Nach den höchsten Sicherheitsstandards der Branche.

BlockSec-Audit
Tether Gold Smart Contract: Schwachstellen bei öffentlichen Transfers