Saltar al contenido
Est. MMXXVIVol. VI · № 273RSS
Blockchain Breaches

Archivo de incidentes de seguridad en criptomonedas — hackeos, exploits, fallos de puentes y rug pulls, documentados con evidencia on-chain.

Expediente № 100Exploit de puente

Drenaje del puente Nomad

Una actualización rutinaria marcó el hash cero como raíz válida, convirtiendo cada mensaje de Nomad en un retiro que cualquiera podía copiar y pegar.

Fecha
Víctima
Nomad
Estado
Parcialmente recuperado

El 1 de agosto de 2022, el puente Nomad fue drenado por aproximadamente $190 M en lo que inmediatamente se conoció como el primer "hackeo descentralizado" — una vez que el exploit fue público, cientos de direcciones se unieron copiando y pegando la transacción original y cambiando el destinatario.

Qué ocurrió

El contrato Replica de Nomad verificaba que la raíz Merkle de un mensaje hubiera sido previamente aceptada antes de permitir un retiro. Una actualización rutinaria inicializó el contrato con un committedRoot de 0x00 — pero la ruta de código que comprobaba las raíces aceptadas trataba el valor cero como "ya aceptado" en lugar de "no inicializado".

El resultado: cualquier mensaje cuya raíz Merkle se resolviera a 0x00 después del hashing era válido. Manipulando las hojas, un atacante podía crear un mensaje que retirara tokens arbitrarios. El atacante original usó esto para drenar WBTC.

La transacción era lo suficientemente simple como para que cualquiera que la viera en Etherscan pudiera cambiar la dirección del destinatario en calldata y reenviarla, retirando el siguiente lote de tokens disponible. Cientos de direcciones lo hicieron durante las siguientes horas.

Consecuencias

  • Nomad pidió a todos los participantes que devolvieran fondos a una dirección de recuperación. Una fracción significativa fue devuelta — particularmente por direcciones que claramente se habían sumado oportunísticamente.
  • El puente fue reconstruido con validación adecuada de raíz y continuó operando a capacidad reducida.

Por qué importa

Nomad es el ejemplo canónico de un bug de un carácter (0 frente a nonzero en un solo condicional) produciendo pérdidas catastróficas. También demostró cómo, en un mempool abierto, un exploit que no requiere sofisticación se extenderá a miles de participantes no relacionados en minutos.

Fuentes y evidencia on-chain

  1. [01]medium.comhttps://medium.com/nomad-xyz-blog/nomad-bridge-incident-update-aug-1-2022-66e85b3bf4f0
  2. [02]halborn.comhttps://www.halborn.com/blog/post/the-nomad-bridge-hack-a-deeper-dive

Registros relacionados