Back to Blog

Incidente no Protocolo Loopring (LRC)

Code AuditingPhalcon SecurityMetaSleuth
December 3, 2020
5 min read
Key Insights

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

Em novembro de 2020, uma vulnerabilidade crítica no Cofre de Taxas do Protocolo LRC da Loopring permitiu que atacantes explorassem falhas de controle de acesso e manipulassem preços de tokens por meio de ataques de flash loan. Este incidente destaca a importância de um controle de acesso robusto e do monitoramento contínuo de segurança em DeFi para prevenir explorações custosas.

Introdução ao Incidente do Protocolo Loopring (LRC)

No final de 2020, várias plataformas DeFi baseadas em Ethereum, incluindo Pickle Finance e 88mph, sofreram incidentes de segurança. Para detectar tais vulnerabilidades, a BlockSec desenvolveu o sistema ThunderForecast, que identificou transações suspeitas envolvendo diferenças de taxas de negociação incomumente grandes e ganhos consistentes de Ether pela mesma conta de propriedade externa (EOA).

Usando nosso sistema EthScope, analisamos essas transações e descobrimos uma exploração direcionada a uma vulnerabilidade no protocolo de cofre da Loopring, especificamente o Cofre de Taxas do Protocolo LRC (LRCPFV). Esta publicação detalha o ataque, seu impacto e as lições aprendidas para a comunidade de segurança DeFi.


Visão Geral do Cofre de Taxas do Protocolo LRC

A Loopring é um protocolo de exchange descentralizada (DEX) de código aberto na Ethereum. Seu token nativo, LRC (ERC-20), é utilizado dentro do ecossistema. O protocolo de cofre da Loopring, conhecido como Cofre de Taxas do Protocolo LRC (LRCPFV), armazena taxas de protocolo e permite a troca de taxas por tokens LRC.

A função vulnerável no LRCPFV é sellTokenForLRC, que permite a troca de tokens por LRC sem controle de acesso adequado, permitindo que qualquer pessoa a invoque.

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

Como essa função não possui controle de acesso, os atacantes podiam invocá-la repetidamente para manipular preços de tokens e lucrar com oportunidades de arbitragem.


Detalhes do Ataque

Analisamos uma transação de ataque representativa: 0x00b2c.... O ataque envolveu seis etapas principais:

  1. Flash Loan: Emprestou 3.773,88 ETH de um provedor de flash loan (0xEB7e...).
  2. Troca Inicial: Converteu 3.773,88 ETH em 5.014,68 LRC na Uniswap V1-LRC a uma taxa de 1 ETH = 1,32878 LRC.
  3. Troca no Cofre de Taxas: Trocou 0,231 ETH de taxa armazenados no LRCPFV por 0,000219 LRC ao invocar a função vulnerável sellTokenForLRC. Essa chamada não autorizada manipulou o preço do LRC na Uniswap, aumentando drasticamente seu valor em relação ao ETH (1 ETH = 0,00094 LRC).
  4. Troca Lucrativa: Trocou 5.014,68 LRC de volta para 3.774,09 ETH na Uniswap V1-LRC, obtendo 0,215 ETH extras devido ao preço manipulado.
  5. Pagamento do Empréstimo: Devolveu o flash loan de 3.773,88 ETH.
  6. Transferência do Lucro: Enviou o lucro de 0,215 ETH para a EOA do atacante.

Esta exploração aproveitou um ataque de flash loan combinado com manipulação de preços e ausência de controle de acesso no contrato do cofre.


Impacto e Escala do Ataque

A transação analisada ocorreu em 13 de outubro de 2020. Usando dados do CoinGecko, o preço do LRC era de aproximadamente 0,0005175 ETH naquele momento.

Nossa investigação revelou:

  • Contratos Maliciosos: 3 implantados pelo atacante (0xa896..., 0x414a..., 0xd91d...).
  • Volume do Ataque: 90 transações lançadas pela EOA do atacante (0x81e8...) desde o bloco 9.644.449, onde o LRCPFV foi implantado.
  • Lucro Máximo: Uma transação (0x33eab...) rendeu 9,89 ETH de lucro.
  • Lucro Total: Aproximadamente 80,97 ETH (~48.849 USD em 1º de outubro de 2020).

A causa raiz foi a ausência de controle de acesso na função sellTokenForLRC, permitindo exploração repetida.


Comece a usar o Phalcon Security

Detecte cada ameaça, receba alertas sobre o que importa e bloqueie ataques.

Experimente agora gratuitamente

Lições Aprendidas e Conclusão

À medida que o ecossistema DeFi da Ethereum cresce, desafios de segurança como vulnerabilidades de controle de acesso tornam-se cada vez mais críticos. Embora ataques de grande repercussão frequentemente chamem atenção, vulnerabilidades menos visíveis podem causar perdas financeiras significativas, como demonstrado por este incidente.

A Loopring perdeu aproximadamente 80,97 ETH devido a esta exploração, enfatizando a necessidade de auditorias rigorosas de contratos inteligentes e monitoramento contínuo de segurança.

Para protocolos DeFi, implementar controle de acesso estrito, utilizar ferramentas como a Auditoria de Contratos Inteligentes e o Phalcon Security da BlockSec, e o gerenciamento proativo de riscos são essenciais para proteger ativos digitais.


Explore a Investigação com o MetaSleuth

Rastreie fluxos e construa evidências para investigações

Experimente agora gratuitamente

Cronologia do Incidente

  • 30/11/2020: Transações suspeitas detectadas pelo ThunderForecast.
  • 01/12/2020: Análise detalhada concluída usando o EthScope.
  • 02/12/2020: Vulnerabilidade reportada à equipe da Loopring.
  • 03/12/2020: Vulnerabilidade confirmada; correção implementada.
  • 03/12/2020: Divulgação pública dos detalhes do incidente.
  • 03/01/2021: CVE-2020-35962 atribuído à vulnerabilidade.

Referências e Leitura Adicional

Best Security Auditor for Web3

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

BlockSec Audit

Get Real-Time Protection with Phalcon Security

Audits alone are not enough. Phalcon Security detects attacks in real time and blocks threats mid-flight.

phalcon security

Go Deeper with MetaSleuth Investigation

Extend your crypto compliance capabilities with Blocksec's MetaSleuth Investigation, the first platform for tracing funds, mapping transaction networks and revealing hidden on-chain relationships.

Move from detection to resolution faster with clear visual insights and evidence-ready workflows across the digital assets ecosystem.

MetaSleuth Investigation