BonqDAO - REKT



BonqDAO recibió un “bonk” de $120M.

Pero el atacante anónimo sólo se llevó menos de $2M.

El protocolo de lending y stablecoins basado en Polygon recibió un ataque en dos etapas el miércoles en otro ejemplo de manipulación del oracle.

La alarma fue dada en Twitter por @spreekaway, quien tuiteó en vivo el dumping de los fondos robados. Los protocolos afectados, BonqDAO y AllianceBlock (cuyo token ALBT se usó en el exploit), confirmaron el ataque en las horas siguientes.

A pesar de que toda la acción era visible en la chain, los administradores del telegram de BonqDAO intentaron minimizar el incidente mientras el equipo presumiblemente resolvía lo que había sucedido.

FUD y spam no serán tolerados

rekt.news reconoce: "el uso de instant price feeds para la valoración de collaterals no será tolerado”.

Crédito: Peckshield, Beosin

Dirección del atacante: 0xcacf2d28b2a5309e099f0c6e8c60ec3ddf656642

Example attack tx: 0x31957ecc…

Smart contract vulnerado: 0x8f55d884cad66b79e1a131f6bcb0e66f4fd84d5b

Samczsun resumió el attack de la siguiente manera:

el attacker dijo "por cierto, 1 ALBT = 5 mil millones de MATIC ahora" y Bonq dijo "ok"

El hacker pudo actualizar manualmente el feed de precios de Tellor del collateral WALBT (wrapped) mediante un stake de 10 tokens TRB (por un valor de solo ~ $175).

Luego, el atacante usó la función submitValue para informar el precio de WALBT al oracle y, debido a que BonqDAO usa el valor instantáneo, el atacante pudo realizar un borrow contra su collateral inflada dentro del mismo tx.

En primer lugar, se elevó el precio de ALBT, lo que permitió al atacante hacer un mint de 100M de BEUR, la stablecoin Euro-pegged de Bonq contra 0,1 WALBT de collateral.

Luego, en una transacción posterior, el precio de WALBT se restableció a un nivel extremadamente bajo, lo que permitió al atacante liquidar el collateral de WALBT del usuario y obtener aproximadamente 113M de WALBT.

Beosin proporcionó un paso a paso:

El attacker llama a la función depositStake del contrato TellorFlex, depositando 10 $TRB. ¿Por qué 10 TRB? Podemos ver que takeAmount es exactamente 10*10^18

Luego, el hacker llama a la función submitValue para enviar una solicitud para cambiar el precio de $WALBT. La función determina si la cantidad staked de la persona que llama ha alcanzado la cantidad preestablecida, razón por la cual el attacker primero debe hacer un stake de 10 tokens TRB (10 ^ 18 es un punto decimal).

Esta función registrará el precio enviado por la persona que llama, en este caso 500000000000000000000000000000000.

Después de establecer el precio, el hacker llama a la función createTrove del contrato Bonq para crear el contrato trove (0x4248FD), que es un contrato de registro, préstamo y liquidación de datos. A continuación, el attacker stakes 0,1$ WALBT al contrato para realizar una operación de borrow.

Normalmente, el monto del borrow debe ser <0.1 WALBT para garantizar una tasa de collateral en un rango seguro. Pero en este contrato, el cálculo del valor del collateral es a través del contrato TellorFlex. El attacker ya ha elevado el precio de $WALBT, por lo que puede pedir un borrow de 100M de $BEUR.

El hacker establece $WALBT a un precio bajo en la 2da TX. Cuando el precio de $WALBT es extremadamente bajo, la tasa de stake de los WALBT staked por otros usuarios estará en liquidación, lo que permitirá al hacker liquidar los $WALBT staked por otros usuarios a bajo costo, y finalmente obtendrá ~114 M de WALBT.

Se ha informado ampliamente que las pérdidas ascienden a $120M, utilizando los precios de los tokens en el momento del ataque. Pero la baja liquidity significó que el atacante solo ha haya logrado intercambiar el botín por un valor de alrededor de $1.7M en ETH y DAI, hasta el momento.

Sin embargo, el daño a BonqDAO fue brutal, con TVL drenado de ~ $13M ayer a poco más de $100k en el momento de escribir este artículo.

El BEUR robado fue dumped en Polygon por poco más de $500k. Luego, los fondos se enviaron a la dirección Ethereum del atacante, donde el ALBT fue dumped repetidamente por ETH. La dirección ETH del atacante actualmente tiene 711 ETH (~$1.2M) y 535k DAI, así como 89M ALBT (supuestamente vale ~$3M, si el atacante puede encontrar un lugar para venderlo...).

BlockSec proporcionó un diagrama de flujo detallado de los fondos, que se puede encontrar aquí. La dirección ETH del atacante se financió a través de Tornado Cash poco antes del exploit y, desde entonces, los fondos robados se han vuelto a depositar en el mixer.

La audit de BonqDAO alertó acerca de “múltiples vulnerabilidades, así como fallas de diseño centrales”.

Segun el post-mortem del auditor Omniscia, BonqDAO decidió:

no seguir con las implementaciones auditadas en ese memento, elegiendo integrar unos oracles_ de Chainlink en el futuro.

El BonqDAO Protocol ha introducido varias updates desde la finalizacion de la audit, incluyendo todos los contracts involucrados en la vulnerabilidad (ConvertedPriceFeed, ChainlinkPriceFeed, and TellorPriceFeed). Estos contracts nunca estuvieron dentro del alcance de ninguna audit dirigida por el equipo Omnniscia, así que se consideran unaudited code.

Si bien BonqDAO pudo haber tenido la vulnerabilidad, AllianceBlock sufrió daños colaterales significativos por este incidente.

La liquidación de ALBT de los usuarios de Bonq hizo que su precio se desplomara hasta ~75% después del exploit. AllianceBlock ha declarado que volverá a emitir el token y realizar un airdrop a los usuarios en función de una snapshot anterior al hack.

La stablecoin en euros de Bonq, BEUR, ha caído aproximadamente un 25% por debajo de su paridad y el precio del token de DAO, BNQ, también ha sufrido un impacto de más del 30%.

Es posible que AllianceBlock no tenga la culpa de la vulnerabilidad, pero tal vez necesiten trabajar con la diligencia debida.

Puede que no sea la parte más emocionante de DeFi, pero seguramente se encuentra entre las más importantes.

Si AllianceBlock quiere lograr sus objetivos de "unir a la perfección DeFi y TradFi", tal vez deberían adoptar un enfoque más TradFi para la diligencia debida.

Pero parece que ya puede ser demasiado tarde para Bonq.


compartir artículo

REKT sirve como plataforma pública para autores anónimos, nos deslindamos de la responsabilidad por las opiniones y contenidos alojados en REKT.

dona (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

aviso legal:

REKT no es responsable ni culpable de ninguna manera por cualquier Contenido publicado en nuestro Sitio Web o en conexión con nuestros Servicios, sin importar si fueron publicados o causados por Autores ANÓN de nuestro Sitio Web, o por REKT. Aunque determinamos reglas para la conducta y publicaciones de los Autores ANÓN, no controlamos y no somos responsables por cualquier contenido ofensivo, inapropiado, obsceno, ilegal o de cualquier forma objetable, que se pudiera encontrar en nuestro Sitio Web o Servicios. REKT no es responsable por la conducta, en línea o fuera de línea, de cualquier usuario de nuestro Sitio Web o Servicios.