Un error de compilación en el firmware de Coldcard drenó 38 millones de dólares en bitcoins en 25 minutos

BTC
reducción de entropíaMonedero de hardwarerobo de bitcoinerror de firmwareexplotación de IAColdcard
2026-08-01Fuente: crypto.news
Un error de compilación en el firmware de Coldcard drenó 38 millones de dólares en bitcoins en 25 minutos

Coinkite dice que un atacante usó IA para encontrar una falla que su propia revisión de IA pasó por alto, exponiendo 500 carteras a un error de generación de semillas que redujo 128 bits de entropía a 40.

Resumen

  • Un atacante drenó 594 BTC, aproximadamente $38 millones, de alrededor de 500 carteras de hardware Coldcard en 25 minutos el 31 de julio, explotando una falla de generación de semillas presente desde marzo de 2021.
  • El error redujo la entropía efectiva de las semillas Mk3 de 128 bits a aproximadamente 40 bits, haciendo que las claves privadas fueran adivinables mediante fuerza bruta en lugar de un ataque criptográfico.
  • Coinkite, el fabricante de Coldcard, cree que el atacante usó IA para descubrir la falla en su firmware de código abierto, y dice que su propia auditoría de IA del mismo código semanas antes no encontró nada.
  • Cada modelo actual de Coldcard se ve afectado en cierta medida, con semillas Mk4, Q y Mk5 estimadas en aproximadamente 72 bits de entropía en lugar de 128, y actualizar el firmware no repara las semillas ya creadas.
  • Block, Trezor y Ledger han confirmado que sus productos no se ven afectados, mientras que el incidente plantea preguntas fundamentales sobre si las carteras de hardware pueden ser confiables como la única capa de custodia para tenencias significativas de bitcoin.

El ataque tomó 25 minutos. A las 2:14 a.m. UTC del 31 de julio, una sola entidad comenzó a barrer bitcoin de carteras de hardware Coldcard. A las 2:39 a.m., 594 BTC se habían movido de aproximadamente 500 carteras a una dirección de consolidación. Los fondos, valorados en aproximadamente $38 millones en el momento del barrido, no fueron robados mediante phishing, malware o acceso físico a los dispositivos. Fueron robados porque los dispositivos generaron claves privadas predecibles.

Coinkite, la empresa con sede en Toronto que fabrica Coldcard, publicó un aviso y un desglose técnico el 30 de julio después de descubrir la falla. La empresa dijo que un error de compilación en su firmware causó que la generación de semillas obtuviera aleatoriedad de un respaldo de software en lugar del generador de números aleatorios de hardware que el dispositivo estaba diseñado para usar. El error había estado presente desde la versión de firmware 4.0.1, lanzada en marzo de 2021. Cada semilla generada en un Coldcard afectado durante los últimos cinco años fue más débil de lo que su propietario creía.

Las implicaciones van más allá de la pérdida financiera inmediata. Coldcard ha sido la cartera de hardware elegida por maximalistas de bitcoin, investigadores de seguridad y custodios institucionales que priorizan la seguridad de código abierto, aislada del aire y solo bitcoin. Si la cartera de hardware más confiable en bitcoin pudo enviar un error de entropía de cinco años sin ser detectado, la pregunta no es si Coldcard falló. La pregunta es si cualquier cartera de hardware puede ser confiable como un punto único de seguridad de custodia.

El mecanismo: cómo 128 bits se convirtieron en 40

La explicación técnica es a la vez simple y alarmante. El firmware de Coldcard llama a una función para obtener aleatoriedad durante la generación de semillas. Existían dos implementaciones de esa función en el código base con firmas idénticas: el generador de números aleatorios de hardware que Coinkite escribió, y un respaldo de software heredado de MicroPython, el runtime de Python embebido sobre el que se construye el firmware.

Se suponía que una guarda de preprocesador seleccionaría la implementación de hardware. Pero la guarda solo verificaba si una configuración estaba definida, no si su valor era correcto. Cuando se compiló el firmware, el sistema de compilación resolvió la ambigüedad seleccionando el respaldo de software. La compilación se completó sin advertencias. El firmware resultante generó semillas que parecían normales, producían direcciones de bitcoin válidas y aceptaban depósitos sin ninguna indicación de que la entropía subyacente era catastróficamente débil.

En el Mk3, Coinkite estima el espacio de búsqueda efectivo para una semilla generada bajo esta condición en aproximadamente 40 bits. Una semilla de 128 bits tiene más combinaciones posibles que átomos en el universo observable. Una semilla de 40 bits tiene aproximadamente un billón de combinaciones. Eso está al alcance de un atacante moderadamente equipado con hardware comercial. La diferencia no es un error de redondeo. Es la diferencia entre una cerradura que no se puede forzar y una cerradura que se puede patear para abrir.

Los modelos Mk4, Q y Mk5 incluyen elementos seguros adicionales que mezclan su propia entropía en el proceso de generación de semillas. Coinkite estima que estos modelos producen semillas con aproximadamente 72 bits de entropía efectiva bajo el error. Eso es materialmente mejor que 40 bits pero aún muy por debajo del objetivo de 128 bits. Un espacio de claves de 72 bits no es prácticamente forzable por fuerza bruta con hardware de consumo actual, pero está dentro del alcance teórico de un adversario bien financiado con acceso a recursos informáticos especializados.

El detalle más crítico en el aviso de Coinkite es una sola frase: "Actualizar el firmware no cambia ni repara una semilla existente". Cada propietario de Coldcard que generó una semilla en firmware afectado debe crear una nueva semilla en hardware parcheado y migrar sus fondos. No hay solución de software para una clave privada débil. La clave misma debe ser reemplazada.

La dimensión de la IA

El aviso de Coinkite introdujo una afirmación que atrajo un escrutinio inmediato de la comunidad de seguridad. La empresa dijo que cree que "alguien usó IA para revisar versiones anteriores de nuestro firmware" para descubrir el error. Añadió que había ejecutado "uno de los mejores modelos disponibles" sobre el mismo código semanas antes del ataque, y el modelo "no encontró este error ni nada grave".

La afirmación es plausible pero no verificada. El firmware de Coldcard es código abierto y está disponible públicamente en GitHub. Cualquier persona o sistema automatizado puede revisarlo. La clase específica de error, una guarda de preprocesador que verifica la definición en lugar del valor, es el tipo de error sutil en la ruta del código que los grandes modelos de lenguaje han mostrado capacidad variable para detectar dependiendo del contexto, la ingeniería de prompts y el modelo utilizado.

La asimetría que describió Coinkite es real incluso si su atribución específica es especulativa. Los atacantes y los defensores sí tienen acceso a las mismas herramientas de IA. Pero los atacantes tienen una ventaja estructural: necesitan encontrar una falla explotable, mientras que los defensores necesitan encontrarlas todas. Una IA que revisa el código y no informa nada grave proporciona una falsa confianza. Una IA que revisa el código y encuentra una sola ruta explotable proporciona al atacante todo lo necesario.

El incidente también plantea preguntas sobre el proceso de auditoría de seguridad para las carteras de hardware en general. Coldcard ha sido elogiado por su enfoque de código abierto, que permite a cualquiera inspeccionar el firmware. Pero la visibilidad del código abierto solo es tan valiosa como la calidad de las inspecciones realizadas. Si la propia revisión de IA del fabricante, presumiblemente realizada con contexto completo sobre la arquitectura y la intención del código base, pasó por alto el error, la ventaja del código abierto se vuelve teórica, no práctica.

La comunidad de investigación en seguridad ha debatido la afirmación de atribución a la IA con escepticismo. Varios investigadores señalaron en las redes sociales que la clase específica de error, una guarda de preprocesador que verifica la definición frente al valor, está bien documentada en la literatura de sistemas embebidos y podría haberse encontrado mediante una revisión de código convencional. El marco de la IA, argumentaron, corre el riesgo de ocultar una falla más fundamental: que Coinkite no tenía suficientes procesos de revisión humana para una ruta de código crítica que no había cambiado en cinco años. Ya sea que la IA encontrara el error o un investigador humano, el problema subyacente es el mismo. El código era público, el error era sutil pero no novedoso, y nadie en el lado defensor lo detectó.

Block publicó un análisis técnico independiente el 31 de julio confirmando que ninguno de sus productos, incluido Bitkey, está afectado. El líder de hardware de Block, Max Guise, instó a cualquier persona con un Coldcard afectado a "mover los fondos tan pronto como puedan hacerlo de manera segura". Trezor confirmó que sus dispositivos utilizan un enfoque diferente de generación de entropía y no son vulnerables. Ledger no ha publicado una respuesta formal, pero su arquitectura de Secure Element utiliza un generador de números aleatorios de hardware dedicado que opera independientemente del firmware.

La ventana de cinco años

La línea de tiempo de la vulnerabilidad es tan dañina como la propia vulnerabilidad. La versión de firmware 4.0.1, que introdujo el error, se lanzó en marzo de 2021. Cada semilla generada en un Coldcard afectado entre marzo de 2021 y los lanzamientos de firmware parcheado el 31 de julio de 2026 está potencialmente comprometida. Eso es cinco años y cuatro meses de generación de semillas afectadas.

Durante esa ventana, Coldcard envió el Mk3 (afectado a 40 bits), el Mk4 (afectado a 72 bits) y el Q (afectado a 72 bits). El Mk5, lanzado en 2026, también está afectado a 72 bits. Coinkite lanzó múltiples actualizaciones de firmware durante este período, ninguna de las cuales abordó o detectó el problema de entropía. Las propias revisiones de seguridad de la empresa, incluida la reciente auditoría de IA, no lo detectaron.

La ventana de cinco años también coincidió con un período de apreciación significativa del precio del bitcoin. Las semillas generadas en dispositivos Mk3 afectados en 2021, cuando bitcoin se negociaba entre $29,000 y $69,000, ahora protegen tenencias a precios superiores a $60,000. El incentivo económico para que un atacante invierta recursos computacionales en forzar claves de 40 bits aumentó con cada rally de precios. Una cartera que contiene 1 BTC que valía $30,000 cuando se generó la semilla ahora vale el doble. El retorno de la inversión del atacante mejoró simplemente esperando.

El número de carteras afectadas es difícil de estimar con precisión. Coinkite no publica cifras de ventas. Las 500 carteras drenadas en el ataque inicial representan el subconjunto más expuesto, probablemente usuarios de Mk3 con la entropía más débil de 40 bits que tenían saldos lo suficientemente grandes como para justificar la inversión computacional del atacante. El número total de carteras con semillas comprometidas en todos los modelos afectados podría ser significativamente mayor.

El patrón de consolidación del atacante sugiere una preparación sistemática. Los 594 BTC fueron barridos de aproximadamente 500 carteras a una dirección de consolidación y luego movidos a una única dirección que contiene 562 BTC. La ventana de ejecución de 25 minutos y el número de carteras atacadas simultáneamente indican que el atacante había precalculado las claves vulnerables antes de iniciar el barrido. Esto no fue un ataque oportunista. Fue una operación que requirió semanas o meses de preparación.

El análisis en cadena del barrido muestra una secuencia de ejecución metódica. El atacante no transmitió las 500 transacciones simultáneamente, lo que habría arriesgado la congestión del mempool y un posible front running por parte de bots estilo MEV que monitorean patrones de transacciones inusuales. En cambio, las transacciones se agruparon en lotes, cada lote confirmándose dentro de uno o dos bloques. La dirección de consolidación recibió fondos a través de múltiples bloques antes de que una transacción final moviera 562 BTC a lo que parece ser una dirección de tenencia a largo plazo. Al momento de escribir esto, los fondos no se han movido más.

El problema de la migración

La guía de remediación de Coinkite pide a los usuarios afectados que realicen una migración de cartera: generar una nueva semilla en el firmware parcheado, verificar la copia de seguridad, enviar una transacción de prueba y luego mover los fondos restantes. El proceso es sencillo para usuarios con una sola cartera y saldos moderados. Es significativamente más complejo para usuarios con configuraciones multisig, transacciones con bloqueo temporal o carteras que sirven como una clave en un acuerdo de custodia más amplio.

La migración también crea sus propios riesgos de seguridad. Mover fondos de una cartera comprometida a una nueva requiere que la cartera comprometida firme una transacción. Si el atacante ya ha calculado la clave privada, el atacante puede adelantarse a la migración monitoreando la blockchain en busca de cualquier transacción desde la dirección comprometida y barriendo inmediatamente los fondos restantes. Los usuarios con saldos significativos enfrentan una condición de carrera entre su propia migración y el barrido del atacante.

Para los usuarios que mantienen bitcoin en acuerdos multisig donde un Coldcard sirvió como uno de los múltiples dispositivos de firma, la migración es más compleja pero el riesgo está parcialmente mitigado. Una cartera multisig 2 de 3 donde solo una clave se generó en un Coldcard afectado sigue siendo segura siempre que el atacante no pueda comprometer una segunda clave. Sin embargo, la clave comprometida aún debilita el modelo de seguridad general y debe ser reemplazada. El proceso requiere coordinar con todos los titulares de claves para construir una nueva cartera multisig con una clave de reemplazo, firmar una transacción de migración con el quórum existente y verificar el nuevo acuerdo antes de mover los fondos restantes.

Coinkite abordó un caso límite que proporciona un alivio parcial. Los usuarios que agregaron al menos 50 tiradas de dados independientes durante la generación de la semilla contribuyeron con suficiente entropía externa para elevar el total por encima de 128 bits independientemente del error del firmware. La entrada de dados se mezcló con la aleatoriedad generada por el dispositivo, por lo que una fuerte entropía de dados compensó la débil entropía del dispositivo. Los usuarios que agregaron 99 o más tiradas contribuyeron con aproximadamente 256 bits solo de los dados.

La excepción de los dados resalta una ironía. Los usuarios con más probabilidades de haber agregado extensas tiradas de dados durante la generación de la semilla son los usuarios más conscientes de la seguridad, precisamente el grupo demográfico que eligió Coldcard específicamente por su reputación de prácticas de seguridad superiores. Para estos usuarios, su propia paranoia sobre la calidad de la entropía puede haberlos protegido inadvertidamente del fracaso del fabricante en proporcionarla.

Lo que esto significa para la seguridad de las carteras de hardware

El incidente de Coldcard no es el primer compromiso de una cartera de hardware. Ledger enfrentó una violación de base de datos en 2020 que expuso información de clientes. Trezor reveló una vulnerabilidad de extracción física en 2023. Pero esos incidentes involucraron exposición de metadatos o requisitos de acceso físico. El error de Coldcard es diferente porque socava la promesa de seguridad fundamental del dispositivo: que genera claves privadas verdaderamente aleatorias.

El momento agrava el daño. El incidente llega cuando el bitcoin se negocia cerca de máximos históricos, y la adopción institucional de soluciones de autocustodia se ha acelerado. Empresas y family offices que eligieron Coldcard específicamente por su reputación de seguridad ahora enfrentan una decisión operativa urgente: migrar fondos en claves potencialmente comprometidas mientras compiten contra un atacante que puede haber calculado ya esas claves.

El incidente desafía varias suposiciones que la comunidad de bitcoin ha tratado como fundamentales. La suposición de que el firmware de código abierto es inherentemente más seguro que el firmware propietario porque puede ser auditado. La suposición de que los generadores de números aleatorios por hardware en dispositivos bitcoin dedicados son más confiables que las alternativas de software. La suposición de que un dispositivo enfocado exclusivamente en bitcoin, en lugar de soportar múltiples criptomonedas, tendrá un código base más simple y, por lo tanto, más auditable.

Ninguna de estas suposiciones es incorrecta en principio. Solo son incorrectas como absolutos. El firmware de código abierto puede ser auditado, pero no fue auditado de manera efectiva. Los generadores de números aleatorios por hardware son más confiables, pero solo cuando el sistema de compilación realmente se vincula a ellos. Una base de código solo de bitcoin es más simple, pero la simplicidad no impidió que un error de cinco años pasara desapercibido.

La lección práctica es que las billeteras de hardware no deben ser tratadas como la única capa de custodia para tenencias significativas de bitcoin. Los arreglos de múltiples firmas que distribuyen claves entre múltiples dispositivos de diferentes fabricantes, combinados con fuentes de entropía generadas de forma independiente, proporcionan una defensa en profundidad que ningún dispositivo individual puede igualar. El incidente de Coldcard demuestra que incluso el dispositivo más confiable puede fallar de maneras que son invisibles para el usuario hasta que los fondos desaparecen.

La pregunta más amplia es si los procesos de revisión de seguridad de la industria de billeteras de hardware son adecuados para los activos que protegen. Una pérdida de $38 millones por un solo error de firmware sugiere que no lo son. El modelo de autocustodia que promueven los defensores de bitcoin requiere herramientas de custodia que cumplan con un estándar de confiabilidad comparable a la infraestructura bancaria que buscan reemplazar. Después de Coldcard, ese estándar no se ha cumplido.

Qué observar

  • **El movimiento del atacante de la consolidación de 562 BTC.** Si los fondos se mezclan, se envían a intercambios o se mantienen en su lugar, proporcionará información sobre la sofisticación y jurisdicción del atacante. Las empresas de análisis de cadenas ya están monitoreando la dirección.
  • **Billeteras afectadas adicionales más allá de las 500 iniciales.** El atacante puede haber calculado claves para billeteras adicionales pero optó por no barrerlas simultáneamente. La exposición total en todos los modelos Coldcard afectados podría ser significativamente mayor que los $38 millones iniciales.
  • **El ritmo de migración de usuarios.** Coinkite no puede obligar a los usuarios a generar nuevas semillas. El número de billeteras que permanecen en semillas comprometidas después de 30, 60 y 90 días indicará cuán efectivamente el aviso llegó a la base de usuarios afectada.
  • **Respuesta regulatoria.** Una pérdida de $38 millones causada por un error de firmware del fabricante en un producto financiero de consumo provocaría acciones regulatorias en las finanzas tradicionales. Si las agencias de protección al consumidor o los reguladores financieros responden a este incidente, señalará cómo los gobiernos clasifican las billeteras de hardware.
  • **Divulgaciones de seguridad de fabricantes competidores.** Block, Trezor y Ledger han confirmado que no están afectados. Si publican análisis técnicos detallados de sus propios procesos de generación de entropía, indicará si la industria trata esto como una falla específica de Coldcard o como una oportunidad de revisión sistémica.

Preguntas frecuentes

¿Cuánto bitcoin fue robado en el exploit de Coldcard?

Aproximadamente 594 BTC, con un valor de alrededor de $38 millones, fueron drenados de aproximadamente 500 billeteras de hardware Coldcard en 25 minutos el 31 de julio de 2026. Los fondos fueron consolidados en una sola dirección que contiene 562 BTC.

¿Qué causó la vulnerabilidad de Coldcard?

Un error de compilación en el firmware de Coldcard causó que la generación de semillas usara un respaldo de números aleatorios por software de MicroPython en lugar del generador de números aleatorios por hardware. Una guardia de preprocesador verificaba solo si una configuración estaba definida, no su valor, por lo que la compilación se vinculaba a la implementación incorrecta sin advertencia.

¿Qué tan débiles eran las semillas afectadas?

Las semillas Mk3 tenían aproximadamente 40 bits de entropía efectiva en lugar de los 128 bits previstos. Las semillas Mk4, Q y Mk5 tenían aproximadamente 72 bits debido a la entropía adicional de sus elementos seguros. Un espacio de claves de 40 bits es forzable por fuerza bruta con hardware comercial.

¿Actualizar el firmware soluciona el problema?

No. Actualizar el firmware corrige la generación futura de semillas pero no repara una semilla ya creada en firmware afectado. Los usuarios deben generar una nueva semilla en hardware parcheado y migrar todos los fondos a la nueva billetera.

¿Qué modelos de Coldcard están afectados?

Todos los modelos actuales están afectados en algún grado. El Mk3 es el más gravemente afectado con 40 bits de entropía. El Mk4, Mk5 y Q están afectados con aproximadamente 72 bits. Tapsigner, Opendime y Satscard usan código diferente y no están afectados.

¿Están afectadas otras billeteras de hardware?

Block, Trezor y Ledger han confirmado que sus productos no están afectados. Block publicó un análisis técnico independiente. Trezor dijo que sus dispositivos utilizan un enfoque diferente de generación de entropía. La vulnerabilidad es específica del proceso de compilación del firmware de Coldcard.

¿Sabía Coinkite sobre el error antes del ataque?

Coinkite dice que descubrió la falla y publicó un aviso el 30 de julio, después de que se informara el error. La empresa dice que realizó una revisión de IA de su firmware semanas antes del ataque y la revisión no encontró el problema. El error había estado presente desde marzo de 2021.

¿Qué deben hacer ahora los propietarios de Coldcard?

Actualice al firmware más reciente para su modelo. Genere una nueva semilla en el dispositivo parcheado. Verifique la copia de seguridad y una dirección de recepción. Envíe una transacción de prueba. Mueva los fondos restantes. Los usuarios que agregaron al menos 50 tiradas de dados independientes durante la generación de la semilla original pueden no necesitar migrar, pero Coinkite recomienda migrar de todos modos.