Anoche hackearon el puente cross-chain de zkLink Nova: un certificado de lote falsificado permitió retirar unos 780.000 dólares
El 28 de octubre a las 22:21 UTC, una transacción retiró unos 780.000 dólares del contrato de custodia de Ethereum de zkLink Nova. En Pekín eran las 6:21 de esta mañana. Blockaid dio primero la alarma y dijo que el ataque seguía en curso; el contrato principal de custodia aún no se había pausado. SlowMist calculó que el botín rondaba los 783.100 dólares.
zkLink Nova es una red de capa 3 de tipo agregador cuya liquidación final se realiza en Ethereum. Cuando los usuarios retiran fondos de Nova a Ethereum, el contrato de custodia primero debe verificar un certificado llamado batch root, que funciona como la huella digital de un lote de transacciones. El contrato solo autoriza el retiro si lo reconoce. El problema estaba en quién podía escribir esa huella en el contrato.
El análisis de SlowMist apunta a la función claimMessage del contrato Arbitrator. Esta utilizaba finalizeMessageHash sin borrarlo después, y tampoco exigía una autenticación nueva en cada llamada de retorno. El atacante primero usó un contrato de retransmisión que cualquiera podía llamar para insertar un hash válido. Luego cambió el objetivo por la puerta de enlace de Ethereum, haciendo que el paso de sincronización del batch root pareciera provenir de una puerta de enlace legítima. Una vez suplantada la identidad, la raíz falsa del lote 116409 quedó registrada en el contrato. Todas las pruebas de retiro que presentó coincidían, y el contrato de custodia autorizó las operaciones. Todo ocurrió en una sola transacción, en el bloque 26294188.
Se retiraron 12 tipos de activos. La mayor parte correspondió a pufETH de Puffer: 245,74 tokens, unos 615.000 dólares, casi el 80 % del total. El resto incluía 22,43 ETH, 12,57 ezETH, 18.113 USDC y pequeñas cantidades de otros tokens. En menos de una hora, el atacante ya había intercambiado 123,26 ETH en Curve y luego transfirió unos 303 ETH a tres direcciones en tres operaciones. Más tarde, otra dirección del atacante retiró del mismo puente unos 216,4 millones de ZKL, valorados en aproximadamente 42.000 dólares.
La lección para los inversores minoristas no tiene que ver con la cantidad. 780.000 dólares no es mucho: el incidente de Kelp DAO de abril de este año ascendió a 292 millones de dólares. Lo que de verdad conviene recordar es cómo ocurrió. Se trató un contrato de retransmisión de acceso público como si fuera una autoridad autorizada y un valor temporal que no se había borrado permitió que la cadena de verificación se rompiera por la mitad. Si la puerta de la caja fuerte reconoce a la persona equivocada, da igual cuánto haya dentro: no podrá protegerlo. Al momento de escribir esto, zkLink aún no había publicado ningún comunicado, ni confirmado si había pausado el puente, y mucho menos anunciado un plan de compensación. Intentar retirar fondos a toda prisa ahora podría equivaler a volver a enviar dinero por una puerta que todavía no se ha cerrado.
Mi opinión es muy clara: si ocurre un incidente en un puente, primero hay que consultar los canales oficiales para confirmar si se ha pausado; no hay que adelantarse con los retiros. Si el puente no ha anunciado una pausa, mejor no depositar fondos ni interactuar con él por ahora. Si ya tienes activos allí, retirarlos en varios lotes es más prudente que hacerlo todo de una vez. Antes de retirar, consulta el aviso sobre la pausa.
¿Tienes activos bloqueados ahora mismo en algún puente cross-chain? ¿Cuándo fue la última vez que comprobaste su estado de pausa y los comunicados oficiales?
#BTC #跨链桥 #安全复盘 #zkLink #SeguridadDeFi
—— web3韭菜小凯
Este contenido recopila información pública y no constituye asesoramiento de inversión. Las cantidades mencionadas se basan en los registros públicos de Blockaid, SlowMist y Etherscan. Para información posterior del equipo del proyecto, consulta sus canales oficiales.