
A empresa de segurança blockchain SlowMist publicou a 18 de junho um TI Alert, no qual afirma que detetou um ataque hacker ao protocolo de mineração DeFi Little Boy Plus na cadeia BSC. As perdas ascendem a cerca de 377.642 USDT (aprox. 610,555 BNB). A SlowMist refere que a vulnerabilidade deste ataque estava na função LBPHashrate._update().
Origem da vulnerabilidade: a função LBPHashrate._update() pode ser usada para contornar a verificação de autorização via transferFrom com valor nulo
(Fonte: Etherscan)
De acordo com a análise técnica da SlowMist, o núcleo da vulnerabilidade é o seguinte: o atacante não precisa de obter qualquer autorização da pool de negociação (pair). Em vez disso, pode chamar diretamente LBPHashrate.transferFrom(pair, DEAD, 0) (transferência de valor nulo). Esta chamada não envolve qualquer transferência efetiva de ativos, mas contorna o mecanismo de verificação de autorização (allowance) da OpenZeppelin e desencadeia a execução da função interna _harvest(pair).
Caminho da execução do ataque: de chamada de valor nulo a esvaziar USDT via PancakePair.swap()
Com base na análise da SlowMist, o ataque foi executado da seguinte forma na cadeia: após acionar _harvest(pair), a função chama LBP.mintReward(pair, reward), cunhando diretamente tokens LBP para o endereço da pool de liquidez do PancakeSwap.
Essas cunhagens gratuitas de LBP aumentam o saldo contabilístico do par de negociação, mas não aumentam em simultâneo as reservas reais, causando um desequilíbrio no preço dentro da pool de liquidez. O atacante utiliza então a função PancakePair.swap(), extraindo todo o USDT da pool com base nesta taxa de câmbio fictícia resultante do desequilíbrio, concluindo o ataque.
Perguntas frequentes
Qual foi a causa raiz deste ataque?
De acordo com a análise técnica da SlowMist, a causa raiz está no defeito na lógica de tratamento da função LBPHashrate._update() para chamadas transferFrom com valor nulo. Isto permite que qualquer pessoa consiga acionar a função _harvest() sem deter qualquer autorização, desencadeando a cunhagem não autorizada de tokens LBP. Trata-se de uma falha na lógica de negócio de um contrato inteligente, e não de um problema de algoritmo criptográfico.
Porque é que o atacante escolheu transferFrom com valor nulo como ponto de entrada do ataque?
Segundo a explicação da SlowMist, o mecanismo padrão de verificação de autorização da OpenZeppelin normalmente só ativa a validação quando o montante da transferência é superior a zero. A transferência de valor nulo contorna esta limitação, permitindo que o atacante invoque funções internas sem deter quaisquer tokens ou autorizações. Este é o principal ponto de rutura deste ataque.
De onde provêm os números específicos do montante das perdas?
Os números das perdas provêm do SlowMist TI Alert publicado pela SlowMist no X (antigo Twitter) a 18 de junho de 2026. O valor exato é ~377,642 USDT (~610.555 BNB), tendo sido verificado através das ferramentas de monitorização on-chain da SlowMist.