CRYPT.ruглавный криптожурнал

Bitcoinjs-lib устранила две уязвимости учёта комиссии в Bitcoin-кошельках

Разработчики библиотеки bitcoinjs-lib выпустили патчи для двух багов, из-за которых приложения могли занижать реальную комиссию майнера в биткоин-транзакциях.

Команда bitcoinjs-lib 26 октября раскрыла две уязвимости и выпустила исправления в версиях 5.2.2, 6.1.9 и 7.0.4 для соответствующих линеек релизов. Библиотеку используют для создания приложений на базе биткоина, в том числе для работы с частично подписанными транзакциями формата PSBT, описанного в BIP 174.

Проблема связана с тем, что комиссия в биткоин-транзакции рассчитывается как разница между суммой входов и выходов. Если значение входа указано неверно, расчётная комиссия искажается. В первом случае подпись и расчёт комиссии могут опираться на разные данные по одному и тому же входу: подпись учитывает полную предыдущую транзакцию, а расчёт комиссии — конфликтующую запись с меньшей суммой. В демонстрации на версии 7.0.1 реальная комиссия составила 900 000 000 сатоши, а библиотека показала всего 200 сатоши — без стандартного предупреждения о завышенной ставке.

Второй баг возникает, когда у финализированных входов нет записей об их стоимости: калькулятор считает такие входы нулевыми. В гипотетическом примере реальная комиссия составляла 91 000 сатоши, а отображаемая — 1 000 сатоши.

Чтобы средства действительно пропали, нужна валидная транзакция, которую сеть примет и подтвердит. Разработчикам, использующим библиотеку, рекомендуется обновиться до исправленных версий или самостоятельно проверять значения входов перед подписанием и трансляцией транзакций.

Источник

  • CryptoSlateBitcoin apps risk massive fee drain, and 2 library bugs are blamed

Ещё в рубрике «Новости»

  1. 28 октября, среда