Pular para o conteúdo
Registro de incidente · · 2 min de leitura · 238 palavras ·Descoberto ·Divulgado Resolvido

Exploit de repetição na ponte Nomad, agosto de 2022: o que aconteceu e o que verificar

Uma atualização de rotina deixou a Nomad aceitando qualquer mensagem como comprovada. Centenas de endereços copiaram a mesma transação e drenaram a ponte em horas.

Compartilhar
Esquema do incidente da Nomad mostrando a etapa de controle de acesso como o ponto de falha.
Schematic of the Nomad incident showing the access control stage as the failure point.

Visão geral

ENTIDADE AFETADA
Nomad
BLOCKCHAIN(S)
Ethereum, Moonbeam
PERDA RELATADA
aprox. US$ 190 milhões(Nomad, 1 ago 2022)
RESPOSTA OFICIAL
medium.com

Um zero onde deveria haver uma raiz

A Nomad verificava as mensagens recebidas comparando-as com uma raiz confiável. Uma atualização de rotina definiu essa raiz como zero. Pela forma como a lógica de verificação tratava o valor zero, toda mensagem — inclusive as inteiramente forjadas — era avaliada como já comprovada.

O resultado foi que sacar da ponte não exigia nenhum desenvolvimento de exploit. Um observador podia copiar uma transação bem-sucedida, substituir o endereço do destinatário pelo seu e enviá-la. É por isso que várias centenas de endereços distintos participaram em poucas horas. Foi, no sentido mais literal, uma fila.

Por que isso importa mais do que o valor

A maioria dos grandes exploits exige habilidade real e, portanto, é limitada pelo número de pessoas capazes de executá-los. Este não era. Assim que o padrão ficou visível on-chain, a população de participantes potenciais passou a ser todo mundo que estivesse olhando. Qualquer defeito que elimine a exigência de habilidade deve ser tratado como categoricamente mais urgente do que outro de valor nominal equivalente que não a elimine.

As atualizações são a superfície de risco

O defeito foi introduzido por uma atualização de rotina, não pelo desenho original. Contratos atualizáveis deslocam a pergunta de segurança de “isto foi auditado” para “o que aconteceu em cada implantação posterior, e o estado resultante foi verificado”. Valores de inicialização são exatamente o tipo de coisa que passa pela revisão como código padrão.

Linha do tempo

Somente de acréscimo. As correções são adicionadas como entrada datada própria; as entradas anteriores nunca são reescritas.

  1. A primeira transação de exploit é executada. Em poucas horas, centenas de endereços a replicam copiando o calldata e substituindo pelo próprio endereço. Nomad
  2. A Nomad confirma publicamente o incidente e pede a devolução dos fundos. Nomad

O que verificar

A Nomad publicou uma análise de causa raiz, com link abaixo, descrevendo o erro de inicialização e a atualização que o introduziu.

A Conisec não hospeda nem linka ferramentas de recuperação, de revogação ou de “verificação”. Depois de um incidente público, atacantes rotineiramente semeiam exatamente esses links usando o nome de publicações que cobrem o caso. Use o canal oficial do próprio projeto afetado, linkado acima, e nada além disso.

Fontes

  1. Nomad, Nomad Bridge Hack Root Cause Analysis (1 ago 2022)

Não é aconselhamento. Este é um resumo de fatos publicados, não orientação jurídica, tributária ou de segurança. Confira nas fontes primárias linkadas acima.

Última verificação por Conisec Staff.

Continue explorando