Informe sobre el error de la red

Esta brecha en el sistema fue corregido por la fundación MakerDAO ya que hubiese significado la pérdida de un gran número de fondos si se hubiese explotado; este era un error crítico en la actualización planeada de MakerDAO de Dai Multi-Colateral (MCD), además, se confirma que cualquier hacker podía realizar un ataque y robar todo lo almacenado en la red en una sola transacción.

El error fue informado por lucash-dev a través del foro de HackerOne cuando la actualización aún estaba en pruebas y todavía no estaba disponible para los usuarios, como premio por haber alertado el problema, el programa de recompensas de MakerDAO otorgó al usuario una remuneración de $50.000.

Detalles de la brecha en la red

El informe destaca que el contrato flip permite que el sistema MCD realice una subasta de garantías a cambio de la stablecoin DAI, así mismo, al no existir una validación en el método flip.kick da la posibilidad al atacante de crear una subasta con un valor falso, y de esta manera, explotar el contrato para emitir cualquier cantidad de DAI gratis durante la liquidación.“Ese DAI se puede usar inmediatamente para obtener todas las garantías almacenadas en el contrato”. Se afirma dentro de la advertencia.

Igualmente, se revela que el método carece por completo de control de acceso, destacando la falta de validación que existe en él, haciendo posible que el método se ejecute durante el proceso de liquidación. incluso, los valores existentes dentro de la subasta se aceptan como parámetros del método.

“Al llamar directamente al método, un usuario malintencionado puede crear una subasta “falsa”, con un valor de oferta inicial arbitrario, sin gastar el DAI correspondiente”.

Además se destaca como un atacante podía atacar la red, en primer lugar se crea una falsa subasta, donde el valor de la oferta puede ser cualquiera, preferiblemente grande, en especial un valor al menos igual al suministro total de DAI. Luego, el atacante llama end.skip, para que el contrato intente devolver la cantidad al atacante, dando como resultado la emisión de DAI en función a las cantidades ingresadas en la primera parte.

“El atacante llama end.pack y end.cash convirtiendo así el DAI en garantía. Si la cantidad ingresada en el paso 1 es el suministro total de DAI, el atacante obtendrá TODAS las garantías almacenadas en el contrato end”

Finalmente lucash-dev, avisa que el costo del ataque sería casi 0, por lo que denomina a este error como crítico, ante ello, adjunta en el informe la posible solución del problema y advierte que en caso de no entender la prueba se pueden comunicar con él.

¿Piensas que la remuneración no es suficiente para cubrir el tamaño del error encontrado? ¿Serías capaz de encontrar un error en la red? Comparte tus opiniones con nosotros en la sección de comentarios.

Comentarios

Comentarios