Un error de Bitcoin permitió a los mineros ejecutar código en los nodos de otras personas

Los desarrolladores de Bitcoin Core revelaron hoy un error que ha permitido a los mineros bloquear y ejecutar código de forma remota en los nodos de otras personas.
La vulnerabilidad, CVE-2024-52911, ha afectado a Bitcoin Core 0.14.1 a 28.4. El desarrollador Cory Fields reveló responsablemente y ayudó a corregir el error de alta gravedad a través de Pull Request (PR) 31112.
Si un minero hubiera querido utilizar el truco oscuro, podría haber ejecutado código de software en una variedad de nodos en todo el mundo.
Afortunadamente, el error permaneció oscuro y probablemente no se utilizó debido a su vector de ataque increíblemente costoso.
Específicamente, el ataque requirió que un minero dirigiera el poder de hash que consume mucha electricidad hacia la extracción de tipos especiales de bloques. Un costo de oportunidad garantizado, estos bloques no válidos no podrían ser elegibles para una recompensa real de Coinbase para recuperar los costos de electricidad de los mineros.
Aún así, el mecanismo de ataque es fácil de entender, aunque costoso de realizar.
Hemos estado publicando avisos de seguridad de Bitcoin Core durante aproximadamente 2 años y (afaik) acabamos de revelar el primer problema de seguridad de la memoria: un uso después de la liberación en el motor de validación. Crédito a Cory Fields de DCI por encontrar e informar.
– Niklas Gögge (@dergoegge) 5 de mayo de 2026
Un minero que produjera un bloque especialmente diseñado con suficiente prueba de trabajo podría bloquear los nodos víctimas y/o utilizar la falla para ocupar su memoria para la ejecución remota de código.
Bitcoin Core admitió que la ejecución remota de código era posible, aunque no citó ejemplos específicos de que esto ocurriera. Destacó no solo su costo y antigüedad, sino también las limitaciones de los datos de bloques que han hecho históricamente improbable que los mineros participen en episodios significativos de titiriteros.
Los viejos nodos de Bitcoin aún corren riesgo de sufrir errores
El aviso de Bitcoin Core describe el error como una falla del intérprete de script. Durante la validación del bloque, el software Bitcoin Core precalcula y almacena en caché los datos de entrada de las transacciones, luego envía el trabajo de validación del script a subprocesos en segundo plano que utilizan la memoria de la computadora.
Si se somete a un ataque CVE-2024-52911, el nodo podría seguir leyendo desde su memoria caché después de que otro proceso ya hubiera liberado los datos de la memoria.
Debido a que este ataque es un error de memoria de uso posterior, es posible la ejecución remota de código durante este estado anormal de la memoria.
En particular, la ejecución remota de código podría ocurrir cuando el hilo de secuencia de comandos en segundo plano del nodo lee datos de transacciones precalculados en caché después de haber sido destruidos por una validación de secuencia de comandos, CScriptCheck.
Debido a que la actualización de un nodo completo de Bitcoin es voluntaria y las actualizaciones de software no son automáticas, una minoría no insignificante de la red ha retrasado la actualización a la versión 29 (v29) o superior.
Específicamente, según una estimación popular, hasta el 43% de los nodos de Bitcoin todavía ejecutan software de nodo completo vulnerable basado en código anterior a la versión 29.
Bitcoin Core retira las descargas de la versión 30 debido a un error que puede borrar las billeteras de la era Satoshi
Divulgación responsable en 2024
Ya en noviembre de 2024, Cory Fields detectó e informó de forma privada el error.
Cuatro días después de la detección, Pieter Wuille presentó una propuesta de solución como PR 31112, titulada "Mejorar el registro de depuración de errores de validación de secuencias de comandos paralelas".
El aviso se lee intencionalmente como una solución de plomería mundana y de mantenimiento. Sin hacer sonar ninguna alarma, arregló el manejo de devolución de la cola de cheques y las validaciones de scripts de Bitcoin Core.
Rápidamente, las relaciones públicas de Fields y Wuille obtuvieron consenso técnico para fusionarse y entrar en producción en diciembre de 2024. Bitcoin Core 29.0 se envió con la solución en abril de 2025, y la línea de lanzamiento final vulnerable, las versiones 28.x, llegaron al final de su vida útil el 19 de abril de 2026.
Ahora que los operadores de nodos han tenido muchos meses para actualizar, y de acuerdo con una política de los últimos años de revelar públicamente correcciones de errores antiguas y previamente secretas, Bitcoin Core finalmente anunció el error hoy en su sitio web.
El desarrollador de Bitcoin Core, Niklas Gögge, señaló correctamente que este es "el primer problema de seguridad de la memoria" en Bitcoin Core. Agradeció a Fields por su divulgación responsable.
Las reglas de consenso de Bitcoin no fueron modificadas por la corrección del error. El error estaba en el software del nodo y su uso de las comprobaciones de la memoria de la computadora, y la solución ya se encuentra en las versiones actuales de Bitcoin Core v29 y posteriores.