Zurück zum Blog

Loopring (LRC) Protokollvorfall

Code AuditingPhalcon SecurityMetaSleuth
3. Dezember 2020
4 Min. Lesezeit
Wichtigste Erkenntnisse
  • Kritischer Zugriffskontrollfehler im LRC Protocol Fee Vault (sellTokenForLRC) von Loopring ermöglichte es jedem, Token-Verkäufe auszulösen und damit Preismanipulationen zu ermöglichen

  • Der Angriff kombinierte Flash Loans mit nicht autorisierten Vault-Swaps, um die Uniswap V1-LRC-Preisgestaltung zu verzerren, und nutzte anschließend Arbitrage aus

Hash(ti)(mod2248)=[b0,b1,…,b247]T,wobei bi∈{0,1}\text{Hash}(t_i) \pmod{2^{248}} = [b_0, b_1, \dots, b_{247}]^T, wobei\ b_i \in \{0, 1\}

Im November 2020 ermöglichte eine kritische Schwachstelle im LRC Protocol Fee Vault von Loopring Angreifern, Zugriffskontrollschwächen auszunutzen und Tokenpreise durch Flash-Loan-Angriffe zu manipulieren. Dieser Vorfall unterstreicht die Bedeutung robuster Zugriffskontrollen und kontinuierlicher DeFi-Sicherheitsüberwachung, um kostspielige Exploits zu verhindern.

Einführung in den Vorfall des Loopring (LRC) Protokolls

Ende 2020 erlebten mehrere Ethereum-basierte DeFi-Plattformen, darunter Pickle Finance und 88mph, Sicherheitsvorfälle. Um solche Schwachstellen zu erkennen, entwickelte BlockSec das ThunderForecast-System, das verdächtige Transaktionen mit ungewöhnlich großen Handelsratenunterschieden und konsistenten Ether-Gewinnen desselben extern besessenen Kontos (EOA) identifizierte.

Mithilfe unseres EthScope-Systems analysierten wir diese Transaktionen und entdeckten einen Exploit, der auf eine Schwachstelle im Vault-Protokoll von Loopring abzielte, insbesondere auf den LRC Protocol Fee Vault (LRCPFV). Dieser Blogbeitrag beschreibt den Angriff, seine Auswirkungen und die Lehren für die DeFi-Sicherheits-Community.


Überblick über den LRC Protocol Fee Vault

Loopring ist ein Open-Source-dezentrales Exchange (DEX)-Protokoll auf Ethereum. Sein nativer Token, LRC (ERC-20), wird innerhalb des Ökosystems verwendet. Der Vault-Protokoll von Loopring, bekannt als LRC Protocol Fee Vault (LRCPFV), speichert Protokollgebühren und ermöglicht den Umtausch von Gebühren in LRC-Token.

Die anfällige Funktion in LRCPFV ist sellTokenForLRC, die den Umtausch von Tokens gegen LRC ohne ordnungsgemäße Zugriffskontrolle ermöglicht und es jedem erlaubt, sie aufzurufen.

function sellTokenForLRC(
    address token,
    uint amount
)
    external
    nonReentrant
{
    require(amount > 0, "ZERO_AMOUNT");
    require(token != lrcAddress, "PROHIBITED");

    address recipient = tokenSellerAddress == address(0) ? owner : tokenSellerAddress;

    if (token == address(0)) {
        recipient.sendETHAndVerify(amount, gasleft());
    } else {
        token.safeTransferAndVerify(recipient, amount);
    }

    require(
        tokenSellerAddress == address(0) ||
        ITokenSeller(tokenSellerAddress).sellToken(token, lrcAddress),
        "SELL_FAILURE"
    );

    emit TokenSold(token, amount);
}

Da dieser Funktion die Zugriffskontrolle fehlt, konnten Angreifer sie wiederholt aufrufen, um Tokenpreise zu manipulieren und von Arbitragemöglichkeiten zu profitieren.


Details des Angriffs

Wir analysierten eine repräsentative Angriffstransaktion: 0x00b2c.... Der Angriff umfasste sechs wichtige Schritte:

  1. Flash Loan: 3.773,88 ETH von einem Flash-Loan-Anbieter (0xEB7e...) ausgeliehen.
  2. Erster Swap: 3.773,88 ETH in 5.014,68 LRC auf Uniswap V1-LRC zu einem Kurs von 1 ETH = 1,32878 LRC umgetauscht.
  3. Fee Vault Swap: 0,231 ETH Gebühr, die im LRCPFV gespeichert sind, in 0,000219 LRC umgetauscht, indem die anfällige Funktion sellTokenForLRC aufgerufen wurde. Dieser nicht autorisierte Aufruf manipulierte den LRC-Preis auf Uniswap und erhöhte dessen Wert gegenüber ETH drastisch (1 ETH = 0,00094 LRC).
  4. Profitabler Swap: 5.014,68 LRC auf Uniswap V1-LRC zurück in 3.774,09 ETH getauscht und aufgrund des manipulierten Preises zusätzliche 0,215 ETH gewonnen.
  5. Darlehensrückzahlung: Die 3.773,88 ETH Flash Loan zurückgezahlt.
  6. Gewinnübertragung: Die 0,215 ETH Gewinn an die EOA des Angreifers gesendet.

Dieser Exploit nutzte einen Flash-Loan-Angriff in Kombination mit Preismanipulation und mangelnder Zugriffskontrolle im Vault-Vertrag aus.


Auswirkungen und Ausmaß des Angriffs

Die analysierte Transaktion fand am 13. Oktober 2020 statt. Laut CoinGecko-Daten lag der LRC-Preis zu dieser Zeit bei etwa 0,0005175 ETH.

Unsere Untersuchung ergab:

  • Bösartige Verträge: 3 vom Angreifer bereitgestellt (0xa896..., 0x414a..., 0xd91d...).
  • Angriffsvolumen: 90 Transaktionen, die seit Block 9.644.449, als LRCPFV bereitgestellt wurde, von der EOA des Angreifers (0x81e8...) gestartet wurden.
  • Maximaler Gewinn: Eine Transaktion (0x33eab...) brachte einen Gewinn von 9,89 ETH.
  • Gesamtgewinn: Ungefähr 80,97 ETH (~48.849 USD per 1. Oktober 2020).

Die Grundursache war die fehlende Zugriffskontrolle in der Funktion sellTokenForLRC, die eine wiederholte Ausnutzung ermöglichte.


Beginnen Sie mit Phalcon Security

Erkennen Sie jede Bedrohung, alarmieren Sie, was wichtig ist, und blockieren Sie Angriffe.

Jetzt kostenlos testen

Gelernte Lektionen und das Ende

Mit dem Wachstum des Ethereum DeFi-Ökosystems werden Sicherheitsprobleme wie Schwachstellen bei der Zugriffskontrolle immer kritischer. Während aufsehenerregende Angriffe oft Aufmerksamkeit erregen, können weniger auffällige Schwachstellen erhebliche finanzielle Verluste verursachen, wie dieser Vorfall gezeigt hat.

Loopring verlor durch diesen Exploit etwa 80,97 ETH, was die Notwendigkeit rigoroser Smart-Contract-Audits und kontinuierlicher Sicherheitsüberwachung unterstreicht.

Für DeFi-Protokolle sind die Implementierung strenger Zugriffskontrollen, die Nutzung von Tools wie dem Smart Contract Audit und Phalcon Security von BlockSec sowie proaktives Risikomanagement unerlässlich, um digitale Assets zu schützen.


MetaSleuth Investigation erkunden

Spuren verfolgen und Beweise für Ermittlungen sammeln

Jetzt kostenlos testen

Zeitplan des Vorfalls

  • 2020/11/30: Verdächtige Transaktionen von ThunderForecast erkannt.
  • 2020/12/01: Detaillierte Analyse mit EthScope abgeschlossen.
  • 2020/12/02: Schwachstelle dem Loopring-Team gemeldet.
  • 2020/12/03: Schwachstelle bestätigt; Korrektur implementiert.
  • 2020/12/03: Öffentliche Offenlegung der Vorfallsdetails.
  • 2021/01/03: CVE-2020-35962 der Schwachstelle zugewiesen.

Referenzen und weiterführende Lektüre

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

Echtzeitschutz mit Phalcon Security

Audits allein reichen nicht aus. Phalcon Security erkennt Angriffe in Echtzeit und wehrt Bedrohungen noch während des Angriffs ab.

phalcon security

Tiefergehende Untersuchungen mit MetaSleuth Investigation

Erweitern Sie Ihre Krypto-Compliance-Möglichkeiten mit MetaSleuth Investigation von BlockSec – der ersten Plattform, mit der Sie Geldflüsse nachverfolgen, Transaktionsnetzwerke abbilden und verborgene On-Chain-Verbindungen aufdecken können.

Mit anschaulichen Darstellungen und auf die Beweissicherung ausgerichteten Workflows gelangen Sie im gesamten Ökosystem digitaler Vermögenswerte schneller von der Erkennung zur Klärung.

MetaSleuth Investigation