@UniLend_Finance es un protocolo de mercado monetario descentralizado sin permisos con servicios de préstamo y endeudamiento a través de contratos inteligentes.
UniLend permite a los usuarios utilizar sus criptomonedas mediante el suministro de garantías a la red que pueden ser prestadas mediante la promesa de criptomonedas con sobrecolateralización. Esto crea un entorno seguro de préstamos donde el prestamista recibe una tasa de interés compuesta anualmente (APY) pagada por bloque, mientras que el prestatario paga intereses sobre las criptomonedas prestadas.
El Protocolo UniLend V2 funciona a través de tres componentes técnicos principales:
1. Modelo de Doble Pool de Activos
UniLend utiliza pools de activos duales aislados para cada par ERC20/ERC20-compatible. Este diseño garantiza que el rendimiento o la volatilidad de un activo no afecte a otros, mejorando la seguridad y la estabilidad. La arquitectura permite a cualquier usuario crear y administrar pools de préstamos y préstamos para una amplia variedad de activos en múltiples blockchains.
2. Suministro y Préstamo
3. Modelo de Tasa de Interés
UniLend emplea un modelo dinámico de tasa de interés basado en la Relación de Utilización (U) del pool, calculada como:
Ux=BorrowxBorrowx+Cashx
Tasa de interés por préstamo:
La tasa de interés del préstamo es del 10%+(Ux×30%)
Las tasas aumentan con una mayor utilización para equilibrar la oferta y la demanda.
Tasa de interés de suministrox=Tasa de interés de préstamox×Ux×(1−S)
Esto garantiza que los proveedores obtengan retornos sostenibles mientras el protocolo sigue siendo rentable.
Estos componentes trabajan juntos para crear un mercado monetario descentralizado seguro, eficiente y escalable.
El 12 de enero de 2025, se explotó una vulnerabilidad de seguridad en el protocolo UniLend, lo que resultó en la pérdida de aproximadamente $200,000 del grupo UniLend. El atacante manipuló los cálculos de los activos garantizados, lo que evaluó incorrectamente el factor de salud del usuario. Esta falla permitió al atacante retirar 60 tokens stETH sin garantía adecuada.
Los activos robados incluyeron 60 tokens stETH, aprovechando el cálculo erróneo de los saldos de tokens de los usuarios del protocolo.
El atacante inició el exploit aprovechando un préstamo flash para depositar una gran cantidad de USDC en la piscina UniLend. Específicamente, depositaron 60 millones de USDC, inflando significativamente su garantía dentro de la piscina.
Los préstamos rápidos permiten a los usuarios pedir grandes cantidades de activos sin necesidad de garantía, siempre y cuando la cantidad prestada se devuelva en la misma transacción.
El atacante utilizó este mecanismo para obtener el USDC necesario sin capital inicial, creando así una posición artificialmente inflada dentro del pool.
Al depositar USDC, el atacante procedió a pedir prestados tokens stETH. El protocolo calcula el valor del colateral del usuario en función de su saldo de tokens dentro del pool. Sin embargo, debido a la implementación defectuosa, el saldo se calculó utilizando el saldo actual de tokens en el contrato del pool en lugar de la cantidad transferida real durante la verificación del factor de salud. Esta discrepancia hizo que el saldo de tokens del usuario pareciera significativamente más alto de lo que realmente era, especialmente en pools con gran liquidez.
La raíz de esta manipulación se encuentra en la función userBalanceOfToken. En escenarios donde la piscina tiene una liquidez sustancial, esta función puede devolver un alto lendBalance incluso cuando queda solo una pequeña parte de lend. Esta sobreestimación del saldo del usuario proporcionó al atacante la ilusión de tener más garantía de la que realmente poseía. En consecuencia, el atacante pudo pedir prestados tokens stETH más allá de su derecho legítimo basado en su garantía real.
Con el valor inflado del colateral, el atacante procedió a canjear sus USDC y stETH. Se llamó a la función redeemUnderlying, que quemó los tokens LP asociados al depósito del usuario. Sin embargo, debido a la comprobación defectuosa del factor de salud que ocurre antes de la transferencia de tokens, el sistema creía que el usuario tenía suficiente colateral para retirar más de lo que le correspondía. Esta falla permitió al atacante retirar 60 tokens stETH sin mantener el colateral necesario, obteniendo efectivamente estos tokens de forma gratuita.
Para prevenir el ataque, UniLend debería haber reordenado las operaciones dentro de la función redeemUnderlying. Al realizar la comprobación del factor de salud después de transferir tokens al usuario, el protocolo garantizaría que el saldo real de tokens del usuario refleje con precisión su estado de garantía.
La seguridad de la cadena de bloques no es opcional. Proteja sus contratos inteligentes y protocolos DeFi con Three Sigma, un socio de seguridad confiable en auditorías de cadena de bloques, evaluaciones de vulnerabilidades de contratos inteligentes y seguridad Web3.
Hacer clic enObtenga su auditoría de contratos inteligentes hoy.
La explotación de UniLend resultó en una pérdida financiera significativa de aproximadamente $200,000 del pool de UniLend. Esta pérdida substancial impactó directamente las reservas de la plataforma y redujo la liquidez disponible para otros usuarios, lo que podría interrumpir las actividades de préstamo y endeudamiento en curso.
Tras el exploit, UniLend tomó medidas inmediatas para abordar la vulnerabilidad y tranquilizar a su base de usuarios.
Anunciaron una recompensa del 20% para la parte responsable por el retorno seguro de los fondos.
Direcciones
Transacción de ataque:
Dirección del explotador:
Dirección del núcleo UnilendV2:
@UniLend_Finance es un protocolo de mercado monetario descentralizado sin permisos con servicios de préstamo y endeudamiento a través de contratos inteligentes.
UniLend permite a los usuarios utilizar sus criptomonedas mediante el suministro de garantías a la red que pueden ser prestadas mediante la promesa de criptomonedas con sobrecolateralización. Esto crea un entorno seguro de préstamos donde el prestamista recibe una tasa de interés compuesta anualmente (APY) pagada por bloque, mientras que el prestatario paga intereses sobre las criptomonedas prestadas.
El Protocolo UniLend V2 funciona a través de tres componentes técnicos principales:
1. Modelo de Doble Pool de Activos
UniLend utiliza pools de activos duales aislados para cada par ERC20/ERC20-compatible. Este diseño garantiza que el rendimiento o la volatilidad de un activo no afecte a otros, mejorando la seguridad y la estabilidad. La arquitectura permite a cualquier usuario crear y administrar pools de préstamos y préstamos para una amplia variedad de activos en múltiples blockchains.
2. Suministro y Préstamo
3. Modelo de Tasa de Interés
UniLend emplea un modelo dinámico de tasa de interés basado en la Relación de Utilización (U) del pool, calculada como:
Ux=BorrowxBorrowx+Cashx
Tasa de interés por préstamo:
La tasa de interés del préstamo es del 10%+(Ux×30%)
Las tasas aumentan con una mayor utilización para equilibrar la oferta y la demanda.
Tasa de interés de suministrox=Tasa de interés de préstamox×Ux×(1−S)
Esto garantiza que los proveedores obtengan retornos sostenibles mientras el protocolo sigue siendo rentable.
Estos componentes trabajan juntos para crear un mercado monetario descentralizado seguro, eficiente y escalable.
El 12 de enero de 2025, se explotó una vulnerabilidad de seguridad en el protocolo UniLend, lo que resultó en la pérdida de aproximadamente $200,000 del grupo UniLend. El atacante manipuló los cálculos de los activos garantizados, lo que evaluó incorrectamente el factor de salud del usuario. Esta falla permitió al atacante retirar 60 tokens stETH sin garantía adecuada.
Los activos robados incluyeron 60 tokens stETH, aprovechando el cálculo erróneo de los saldos de tokens de los usuarios del protocolo.
El atacante inició el exploit aprovechando un préstamo flash para depositar una gran cantidad de USDC en la piscina UniLend. Específicamente, depositaron 60 millones de USDC, inflando significativamente su garantía dentro de la piscina.
Los préstamos rápidos permiten a los usuarios pedir grandes cantidades de activos sin necesidad de garantía, siempre y cuando la cantidad prestada se devuelva en la misma transacción.
El atacante utilizó este mecanismo para obtener el USDC necesario sin capital inicial, creando así una posición artificialmente inflada dentro del pool.
Al depositar USDC, el atacante procedió a pedir prestados tokens stETH. El protocolo calcula el valor del colateral del usuario en función de su saldo de tokens dentro del pool. Sin embargo, debido a la implementación defectuosa, el saldo se calculó utilizando el saldo actual de tokens en el contrato del pool en lugar de la cantidad transferida real durante la verificación del factor de salud. Esta discrepancia hizo que el saldo de tokens del usuario pareciera significativamente más alto de lo que realmente era, especialmente en pools con gran liquidez.
La raíz de esta manipulación se encuentra en la función userBalanceOfToken. En escenarios donde la piscina tiene una liquidez sustancial, esta función puede devolver un alto lendBalance incluso cuando queda solo una pequeña parte de lend. Esta sobreestimación del saldo del usuario proporcionó al atacante la ilusión de tener más garantía de la que realmente poseía. En consecuencia, el atacante pudo pedir prestados tokens stETH más allá de su derecho legítimo basado en su garantía real.
Con el valor inflado del colateral, el atacante procedió a canjear sus USDC y stETH. Se llamó a la función redeemUnderlying, que quemó los tokens LP asociados al depósito del usuario. Sin embargo, debido a la comprobación defectuosa del factor de salud que ocurre antes de la transferencia de tokens, el sistema creía que el usuario tenía suficiente colateral para retirar más de lo que le correspondía. Esta falla permitió al atacante retirar 60 tokens stETH sin mantener el colateral necesario, obteniendo efectivamente estos tokens de forma gratuita.
Para prevenir el ataque, UniLend debería haber reordenado las operaciones dentro de la función redeemUnderlying. Al realizar la comprobación del factor de salud después de transferir tokens al usuario, el protocolo garantizaría que el saldo real de tokens del usuario refleje con precisión su estado de garantía.
La seguridad de la cadena de bloques no es opcional. Proteja sus contratos inteligentes y protocolos DeFi con Three Sigma, un socio de seguridad confiable en auditorías de cadena de bloques, evaluaciones de vulnerabilidades de contratos inteligentes y seguridad Web3.
Hacer clic enObtenga su auditoría de contratos inteligentes hoy.
La explotación de UniLend resultó en una pérdida financiera significativa de aproximadamente $200,000 del pool de UniLend. Esta pérdida substancial impactó directamente las reservas de la plataforma y redujo la liquidez disponible para otros usuarios, lo que podría interrumpir las actividades de préstamo y endeudamiento en curso.
Tras el exploit, UniLend tomó medidas inmediatas para abordar la vulnerabilidad y tranquilizar a su base de usuarios.
Anunciaron una recompensa del 20% para la parte responsable por el retorno seguro de los fondos.
Direcciones
Transacción de ataque:
Dirección del explotador:
Dirección del núcleo UnilendV2: