Back to Blog

Loopring(LRC)-Protokoll-Vorfall

Code Auditing
December 3, 2020

Im November 2020 ereigneten sich auf vielen DeFi-Plattformen in Ethereum Sicherheitsvorfälle, wie z. B. bei Pickle Finance und 88mph.

Zur Erkennung der aufgetretenen Sicherheitsvorfälle im DeFi-Bereich haben wir das System ThunderForecast entwickelt. Bei der Analyse aktueller Transaktionen entdeckt es eine Klasse von Transaktionen, die äußerst verdächtig sind. Erstens gibt es ein Paar von Trades, bei denen die Handelsrate mehr als tausendmal voneinander abweicht. Zweitens kann der Aufrufer (EOA) am Ende jeder Transaktion immer einige Ether gewinnen. Wir haben das vom Forschungsteam entwickelte EthScope-System zur Analyse dieser Transaktionen verwendet und festgestellt, dass es sich um einen Angriff handelt, der eine Schwachstelle des Loopring-Vault-Protokolls für Arbitragezwecke ausnutzt.

LRC Protocol Fee Vault

Loopring ist ein Open-Source-Protokoll für dezentrale Börsen (DEX) auf der Ethereum-Blockchain. Entsprechend ist LRC der Token (ERC-20) von Loopring. Darüber hinaus verfügt Loopring über ein spezielles Vault-Protokoll (LRC Protocol Fee Vault), um Protokollgebühren zu speichern. Im Folgenden werden wir die Kurzform LRCPFV für die Analyse verwenden.

    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);
    }

sellTokenForLRC ist eine Funktion in LRCPFV. Diese Funktion ermöglicht es Benutzern, Gebühren gegen den LRC-Token aus dem Pool zu tauschen. Es gibt jedoch keine Zugriffskontrolle in sellTokenForLRC seitens der Entwickler, sodass jeder diese Funktion aufrufen kann. Schließlich erhält der Angreifer durch die Ausnutzung dieser Schwachstelle die Möglichkeit, eine Reihe von Angriffen mit der gleichen Logik zu starten. Die Details des Angriffs werden im Folgenden analysiert.

Details

Nun enthüllen wir weitere Details dieses Angriffs anhand einer Angriffstransaktion 0x00b2c...

Es sind sechs Schritte beteiligt:

  • Schritt 1: Aufnahme eines Flash-Loans von 3773,88 ETH von 0xEB7e...

  • Schritt 2: Tausch von 3773,88 ETH gegen 5014,68 LRC auf Uniswap V1-LRC. Der Kurs bei diesem Handel beträgt: 1 ETH = 1,32878 LRC

  • Schritt 3: Tausch von 0,231 ETH Gebühr, die bei LRCFV gespeichert sind, gegen 0,000219 LRC auf dem Uniswap V1-LRC Pool durch Aufruf von sellTokenForLRC (Wie bereits erwähnt, sollte der Angreifer sellTokenForLRC nicht aufrufen). Basierend auf dem von Uniswap V1-LRC verwendeten Preisberechnungsalgorithmus steigt der Preis von LRC gegenüber ETH auf Uniswap V1-LRC dramatisch an. Der Kurs dieses Handels beträgt: 1 ETH = 0,00094 LRC

  • Schritt 4: Tausch von 5014,68 LRC gegen 3774,09 ETH auf Uniswap V1-LRC. Basierend auf Schritt 3 wird nur ein kleiner Teil von LRC auf Uniswap V1-LRC gehandelt. Diese Aktion macht LRC auf Uniswap V1-LRC wertvoller gegenüber ETH. Daher erhält der Angreifer im Vergleich zu Schritt 1 3773,88 ETH durch den Tausch von 5014,68 LRC auf Uniswap V1-LRC und erzielt einen zusätzlichen Gewinn von 0,215 ETH.

  • Schritt 5: Rückzahlung des Flash-Loans von 3773,88 ETH

  • Schritt 6: Überweisung von 0,215 ETH an die Adresse des Angreifers (EOA)

Gewinn & Verlust

Die oben analysierte Transaktion wurde am 13. Oktober 2020 gestartet. Zur Berechnung des groben, aber nachvollziehbaren Gewinns und Verlusts für Angreifer und Opfer nutzen wir coingecko, um den Preis von LRC zu erhalten, der 0,0005175 ETH beträgt. Auf der anderen Seite, LRCPFV.

Der Angreifer manipuliert den Preis in Schritt 4 und erzielt durch zwei Trades einen Gewinn von 0,215 ETH.

Ausmaß des Angriffs

Basierend auf der Art des Angriffs haben wir 3 bereitgestellte bösartige Verträge (0xa896..., 0x414a..., 0xd91d...) und 90 Transaktionen des Angreifers 0x81e8... seit Block 9644449 (als LRCPFV bereitgestellt wurde) identifiziert. Der höchste Gewinn in Transaktion 0x33eab... erreichte sogar 9,89 ETH. Insgesamt hat der Angreifer 80,97 ETH durch Arbitrage gewonnen, was bei dem Preis vom 1. Oktober 2020 48.849,2 USD entspricht.

Ende

Mit der Entwicklung des DeFi-Ökosystems in Ethereum treten allmählich verschiedene Sicherheitsprobleme auf. Die Community lässt sich jedoch möglicherweise leichter von einem Angriff, der einen enormen finanziellen Verlust verursacht, ablenken als von einigen unauffälligen Angriffen. Tatsächlich verursachte die Ursache, die Zugriffskontrolle, hinter dem Angriff auch einen erheblichen Verlust (80,97 ETH) für Loopring durch 90 Transaktionen.

Zeitachse

  • 2020/11/30: Verdächtige Transaktionen wurden gefunden.
  • 2020/12/01: Analyse abgeschlossen.
  • 2020/12/02: An Loopring gemeldet.
  • 2020/12/03: Schwachstelle bestätigt und Korrektur online.
  • 2020/12/03: Details veröffentlicht.
  • 2021/01/03: CVE-2020–35962 zugewiesen.
Sign up for the latest updates
Drift Protocol Incident: Multisig Governance Compromise via Durable Nonce Exploitation
Security Insights

Drift Protocol Incident: Multisig Governance Compromise via Durable Nonce Exploitation

On April 1, 2026 (UTC), Drift Protocol on Solana suffered a $285.3M loss after an attacker exploited Solana's durable nonce mechanism to delay the execution of phished multisig approvals, ultimately transferring administrative control of the protocol's 2-of-5 Squads governance with zero timelock. With full admin privileges, the attacker created a malicious collateral market (CVT), inflated its oracle price, relaxed withdrawal protections, and drained USDC, JLP, SOL, cbBTC, and other assets through 31 rapid withdrawals in approximately 12 minutes. This incident highlights how durable nonce-based delayed execution can decouple signer intent from on-chain execution, bypassing the temporal assumptions that multisig security implicitly relies on.

Weekly Web3 Security Incident Roundup | Mar 23 – Mar 29, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Mar 23 – Mar 29, 2026

This BlockSec weekly security report covers eight DeFi attack incidents detected between March 23 and March 29, 2026, across Ethereum and BNB Chain, with total estimated losses of approximately $1.53M. Incidents include a $679K flawed burn mechanism exploit on the BCE token, a $512K spot-price manipulation attack on Cyrus Finance's PancakeSwap V3 liquidity withdrawal, a $133.5K flash-loan-driven referral reward manipulation on a TUR staking contract, and multiple integer overflow, reentrancy, and accounting error vulnerabilities in DeFi protocols. The report provides detailed vulnerability analysis and attack transaction breakdowns for each incident.

Newsletter -  March 2026
Security Insights

Newsletter - March 2026

In March 2026, the DeFi ecosystem experienced three major security incidents. Resolv Protocol lost ~$80M due to compromised privileged infrastructure keys, BitcoinReserveOffering suffered ~$2.7M from a double-minting logic flaw, and Venus Protocol incurred ~$2.15M following a donation attack combined with market manipulation.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit