En resumen
- Coinkite señala que un error de compilación provocó que las semillas en sus billeteras Coldcard fueran generadas a partir de un recurso de software en vez del generador de hardware.
- Asegura que un atacante utilizó IA sobre su código open-source, y afirma que su propia revisión con IA, realizada semanas antes, no detectó nada.
- Todos los modelos actuales se ven afectados en cierta medida, y actualizar el firmware no soluciona una semilla ya creada.
Coinkite considera que un atacante usó IA para encontrar una vulnerabilidad que ha costado a los dueños de Coldcard decenas de millones de dólares en Bitcoin. Asegura que su propia revisión con IA sobre ese mismo código, realizada semanas antes, no arrojó ningún resultado.
El fabricante de la billetera publicó un aviso para el modelo Mk3 y un análisis técnico este jueves, tras enterarse de que las semillas generadas eran mucho más fáciles de adivinar de lo previsto.
Las pérdidas provocadas por la falla, que fue explotada el viernes temprano, se estiman en 594 BTC, alrededor de 38 millones de dólares. Los fondos se vaciaron de unos 500 monederos en menos de 25 minutos, y 562 BTC se consolidaron en una única dirección.
Coinkite dijo que debe asumir que "alguien utilizó IA para revisar versiones anteriores de nuestro firmware" y así encontró la vulnerabilidad. La empresa afirmó que hace unas semanas ejecutó uno de los mejores modelos disponibles sobre su propio código, y ese modelo "no detectó este error ni nada grave". Los atacantes y los defensores tienen las mismas herramientas, escribió, pero esta vez “no nos ayudó y solo benefició a los malos”.
Qué salió mal
El firmware de Coldcard llama a una función para generar aleatoriedad, y dos implementaciones coexistían en el código con firmas idénticas: el generador de hardware desarrollado por Coinkite y un recurso de software heredado de MicroPython. Una protección del preprocesador solo comprobaba si la configuración estaba definida, sin verificar su valor, así que la compilación se completó usando el recurso alternativo, sin generar advertencias. La generación de semillas utilizó ese recurso desde la migración de marzo de 2021.
Todos los modelos actuales se ven afectados en cierta medida. Coinkite estima que el espacio efectivo de búsqueda de una semilla Mk3 es de unos 40 bits, frente a los 128 bits que se supone deberían tener. La entropía extra proporcionada por los elementos seguros en los modelos Mk4, Q y Mk5 eleva su seguridad a aproximadamente 72 bits, lo que según la empresa mejora sustancialmente la situación, aunque sin alcanzar el objetivo. Tapsigner, Opendime y Satscard utilizan código diferente y no se ven afectados.
Qué deben hacer los propietarios
Coinkite lanzó un parche de emergencia, versión 5.6.0 para los modelos Mk4 y Mk5 y 1.5.0Q para el Q. La actualización no soluciona una semilla ya creada en firmware afectado. Los propietarios deben generar una nueva semilla en hardware corregido, y la empresa recomienda una passphrase BIP-39 fuerte, al menos 99 tiradas de dados, o ambas. Los dueños del Mk3, cuyo modelo ya no tiene soporte, deben seguir una ruta de migración alternativa.



