
Estudio criptoanalítico de CVE-2025-29774 y fallas SIGHASH_SINGLE en la implementación ECDSA de Bitcoin, que permite la recuperación de claves privadas mediante la reutilización de nonces y la falsificación de firmas para acceder a billeteras perdidas.
Este artículo de investigación presenta un estudio criptoanalítico exhaustivo de vulnerabilidades críticas en la implementación de la firma digital del protocolo Bitcoin, en concreto el Ataque Phantom Signature (CVE-2025-29774) y el error de procesamiento de SIGHASH_SINGLE fundamental. El estudio demuestra que el procesamiento incorrecto de primitivas criptográficas en el mecanismo de firma de transacciones crea las condiciones para el compromiso total de las claves privadas de los propietarios de carteras de criptomonedas sin su conocimiento. El ataque explota un error heredado del cliente original de Satoshi, en el que el sistema devuelve un valor hash universal de «1» (uint256) en lugar de rechazar la firma si el número de entradas y salidas de la transacción no coincide.
La parte práctica del estudio implica el uso de la herramienta criptográfica KeyFuzzMaster para identificar sistemáticamente vulnerabilidades en el código de verificación de firmas, operaciones de curva elíptica y funciones de hash de transacciones. Se presentan fórmulas matemáticas para la recuperación de claves privadas mediante la reutilización del nonce (parámetro k) en el algoritmo ECDSA sobre la curva secp256k1. Se analizan las primitivas criptográficas del algoritmo ECDSA (Algoritmo de Firma Digital de Curva Elíptica) sobre la curva elíptica secp256k1. Las firmas digitales en Bitcoin cumplen una triple función: autorización del gasto, no repudio y garantía de integridad de la transacción.
Sin embargo, mantener soluciones arquitectónicas heredadas para garantizar la compatibilidad con versiones anteriores ha llevado a la aparición de vulnerabilidades criptográficas sutiles con consecuencias potencialmente catastróficas. Entre estas, el bug de SIGHASH_SINGLE destaca —un defecto fundamental en el mecanismo de generación de hash de firma, heredado de la implementación original de Bitcoin Core e integrado en el consenso de la red.
| Identificador CVE | Componente | Puntuación CVSS | Criticidad |
|---|---|---|---|
| CVE-2025-29774 | xml-crypto / SIGHASH_SINGLE | 9.3 | Crítica |
| CVE-2025-29775 | Bypass de DigestValue en xml-crypto | 9.3 | Crítica |
| CVE-2025-48102 | GoUrl Bitcoin Payment Gateway (XSS almacenado) | 5.9 | Media |
| CVE-2025-26541 | CodeSolz WooCommerce Gateway (XSS reflejado) | 6.1 | Media |
Bitcoin utiliza la curva elíptica secp256k1 definida por el estándar SECG (Standards for Efficient Cryptography Group). La curva se define mediante la ecuación de Weierstrass sobre un campo finito:
Ecuación de la curva:
y² ≡ x³ + ax + b (mod p)
Para secp256k1:
y² ≡ x³ + 7 (mod p), donde a = 0, b = 7
Los parámetros de la curva secp256k1 se determinan mediante la tupla T = (p, a, b, G, n, h):
Parámetros de secp256k1:
p = 2²⁵⁶ − 2³² − 977 (el número primo que define un campo finito)
n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
(el orden del grupo de puntos de la curva es el orden entero del generador G)
G = (Gₓ, Gᵧ) — punto base fijo (generador)