#CriticalVulnerability 🚨 Atención, desarrolladores de aplicaciones
$BTC : vulnerabilidad crítica en «bitcoinjs-lib»
Se han corregido dos errores graves en la popular biblioteca `bitcoinjs-lib`. Estos fallos podían hacer que las aplicaciones infravaloraran drásticamente las comisiones de los mineros en transacciones PSBT (transacciones de Bitcoin parcialmente firmadas) totalmente válidas y firmadas.
¿Cuál es el problema?
En Bitcoin, la comisión es la diferencia entre la suma de las entradas y la suma de las salidas. Dos errores lógicos distintos hacían que la biblioteca informara de una comisión mínima (por ejemplo, 200 o 1.000 satoshis), mientras que la cantidad real descontada de la cartera y pagada a los mineros podía llegar a casi 1 BTC (900 millones de satoshis).
1. Valores de entrada en conflicto: el proceso de firma utilizaba todos los datos de la transacción anterior, mientras que el módulo de cálculo de comisiones se basaba en un registro conflictivo con un valor inferior. Aunque la firma seguía siendo válida, el cálculo de la comisión era incorrecto.
2. Registros de valores de entrada ausentes: en las entradas finalizadas cuyo importe no se había especificado, la biblioteca trataba el valor como «0». Esto permitía ocultar una comisión real enorme en las transacciones importadas.
¿Qué versiones están afectadas? Serie v5: corregido en
➡️ 5.2.2 (vulnerables: 5.1.0 – 5.2.1)
➡️ Serie v6: corregido en 6.1.9 (vulnerables: 6.0.0 – 6.1.8)
➡️ Serie v7: corregido en 7.0.4 (vulnerables: 7.0.0-rc.0 – 7.0.3)
¿Qué debes hacer?
➡️ Actualiza a las versiones con el parche (5.2.2, 6.1.9, 7.0.4).
➡️ Si no puedes actualizar ahora, implementa una verificación independiente de los valores de entrada y rechaza cualquier dato incoherente antes de firmar o calcular las comisiones.
La seguridad de tu aplicación depende de si confías ciegamente en las bibliotecas o verificas hasta el último satoshi. 🛡️