
Repositorio de exploits e investigación que analiza CVE-2025-60013, una vulnerabilidad crítica de inicialización HSM que permite la recuperación de claves privadas de Bitcoin mediante desbordamiento de búfer e inyección de metacaracteres de shell en módulos FIPS F5OS-A.
Este artículo analiza vulnerabilidades criptográficas descubiertas en la infraestructura moderna de gestión de claves criptográficas, con especial atención a fallos críticos en la arquitectura de los módulos de seguridad de hardware (HSM) al manejar claves privadas de curvas elípticas. El estudio se centra en una clase de ataques que explotan la gestión insuficientemente aislada de la RAM en dispositivos criptográficos certificados. En el ecosistema criptográfico moderno de Bitcoin, la seguridad de las claves privadas es un requisito fundamental para proteger activos digitales valorados en billones de dólares a nivel mundial. Los módulos de seguridad de hardware (HSM) certificados según el estándar FIPS 140-2 se han considerado tradicionalmente como una protección impenetrable para las claves criptográficas gracias al aislamiento a nivel de hardware y a los estrictos protocolos de gestión de memoria. Sin embargo, el descubrimiento de la vulnerabilidad crítica CVE-2025-60013 en el módulo HSM FIPS F5OS-A, combinado con la clase de ataques Ataque Scalar Venom (también conocido como Scalar Poison, Memory Phantom Leak Attack o Compromiso de Clave Privada mediante Fuga de Memoria), ha cambiado radicalmente esta noción, demostrando la posibilidad de comprometer por completo claves privadas de Bitcoin mediante la explotación de fallos en la gestión de memoria.
El Ataque Scalar Venom es una clase crítica de vulnerabilidades de gestión de memoria (clasificada como CWE-415, CWE-401 y, de forma más amplia, como Ataque de Fuga de Memoria Sensible (SMA)) que permite a un atacante extraer escalares criptográficos (claves privadas ECDSA) de la RAM de un proceso explotando una sanitización y limpieza de memoria insuficientes tras operaciones criptográficas. A diferencia de los ataques criptoanalíticos tradicionales destinados a resolver matemáticamente el problema del logaritmo discreto de curva elíptica (ECDLP), este ataque elude la propia criptografía explotando fallos arquitectónicos fundamentales en la implementación de las bibliotecas criptográficas y en los protocolos de gestión de memoria de los HSM.
Esta investigación demuestra una cadena de ataque catastrófica que se produce al combinar CVE-2025-60013 (vulnerabilidad de inicialización del HSM FIPS F5OS-A al usar contraseñas que contienen metacaracteres de shell especiales) con las técnicas del Ataque Scalar Venom, lo que da como resultado un escenario de amenaza crítica con una puntuación CVSS de 9.5+ (Crítico), a pesar de que la clasificación oficial de CVE-2025-60013 es la de una vulnerabilidad de nivel medio (CVSS 5.7). Esta combinación socava la integridad operativa de millones de direcciones Bitcoin controladas por HSM comprometidos y representa un cambio de paradigma en los métodos de ataque criptográfico más allá de los exploits tradicionales de vector único.
CVE-2025-60013 es una vulnerabilidad de inyección de comandos del sistema operativo (clasificada como CWE-78) durante el proceso de inicialización del Módulo de Seguridad de Hardware FIPS para plataformas F5. La vulnerabilidad se produce cuando un usuario con acceso privilegiado (rol de Administrador o Administrador de Recursos) intenta inicializar el módulo HSM FIPS utilizando una contraseña que contiene metacaracteres de shell especiales, como [poco claro], [poco claro ;] |, &[ $poco claro], `y otros.
Mecanismo técnico de la vulnerabilidad:
Al procesar una contraseña que contiene metacaracteres de shell, el código de inicialización del HSM pasa la cadena de la contraseña a las funciones de la biblioteca C del sistema sin validar ni sanitizar adecuadamente la entrada. El código vulnerable tiene este aspecto:
// Vulnerable code in HSM initialization procedure
void hsm_initialize(const char* password) {
ec_secret master_key; // HSM private key
char temp_buffer[256];
strcpy(temp_buffer, password); // VULNERABILITY: buffer overflow + shell interpretation
derive_key_from_password(master_key, password); // creates copies of key
// If initialization fails, memory is not cleared!
// master_key remains in the stack, its copies—in heap
}