Bitcoinjs-lib, библиотека программного обеспечения для создания приложений Bitcoin, устранила две ошибки, которые могли приводить к занижению комиссий майнеров для корректных транзакций. В безопасности, раскрытой 26 октября, указаны исправленные версии 5.2.2, 6.1.9 и 7.0.4 для соответствующих линий релизов. Приложения находятся под угрозой, если они импортируют пакеты и полагаются на расчет комиссий библиотеки или защиту от чрезмерных комиссий без независимой проверки выходов, которые тратятся.
Уязвимости связаны с частично подписанными транзакциями bitcoin (PSBT). BIP 174 определяет PSBT как формат для обмена деталями транзакций и подписями между клиентами. Подпись, объединение подписей, финализация входов и извлечение транзакции остаются отдельными операциями, даже в пределах одного приложения. Транзакция bitcoin платит комиссию, равную общей стоимости входов минус общая стоимость выходов. Занижение стоимости входа делает рассчитанную комиссию ниже.
Первый недостаток позволяет подписи и учёту комиссий присваивать разные значения одному и тому же входу. Подпись основывается на полной предыдущей транзакции, тогда как учёт комиссий отдаёт предпочтение конфликтующей записи с меньшим значением. Уязвимое программное обеспечение может таким образом авторизовать фактическую транзакцию, при этом оценивая неверную комиссию. В рекомендации описывается демонстрация bitcoinjs-lib 7.0.1 с фактической комиссией 900 000 000 сатоши и заявленной комиссией 200 сатоши. Демонстрация сгенерировала проверенную подпись и позволила извлечь средства без срабатывания предупреждения о стандартной ставке комиссии.
Второе предупреждение описывает финализированные входы, для которых отсутствуют записи о стоимости входа. Калькулятор комиссий рассматривает эти входы как имеющие нулевую стоимость. Приложение может импортировать уже подписанную PSBT от другой стороны и достичь такого расчета без повторной подписи. Второе предупреждение демонстрирует гипотетическую транзакцию с фактической комиссией 91 000 сатоши и заявленной комиссией 1 000 сатоши. Финализированные скрипты и подписи сами по себе не определяют стоимость входа, если записи о его стоимости отсутствуют.
Уязвимость, связанная с конфликтующей записью, затрагивает версии 5.2.0–5.2.1, версии 6.0.0–6.1.8, включая 6.1.0-rc.0, и версии 7.0.0-rc.0–7.0.3. Уязвимость, связанная с отсутствующей записью, затрагивает те же выпуски версий 6 и 7, а также версии 5.1.0–5.2.1. Финансовые потери возможны только при условии, что авторизованная и действительная транзакция будет передана в сеть и принята. Ошибки не могут генерировать подписи, а избыточная сумма передается майнерам в виде комиссии.
Исправления позволяют использовать единый метод для подписи и учета, чтобы устранить предыдущие результаты. Исправления отклоняют конфликтующие значения или скрипты и требуют указания значения для каждого входа при расчете комиссий. Исправления также делают недействительными кэшированные комиссии и извлеченные транзакции после изменений соответствующих метаданных или их комбинаций. Администраторам следует проверить версии зависимостей и пересмотреть валидацию импортированных PSBT. Администраторы, которые не могут обновиться, должны самостоятельно подтвердить значения ссылочных выходов. Администраторы должны отклонять конфликтующие записи до подписи или использования рассчитанных комиссий. Администраторы должны проверить значение каждого входа до использования комиссий или извлечения транзакции.
Bitcoinjs-lib устраняет 2 ошибки, которые могли приводить к занижению комиссий
CryptoSlateПоделиться
Срочные новости о bitcoin: Bitcoinjs-lib выпустил исправления для двух уязвимостей, которые могут привести к занижению комиссий в приложениях bitcoin. Эти недостатки, связанные с PSBT, могут вызывать некорректный расчет комиссий и финансовые потери. Исправления включены в версии 5.2.2, 6.1.9 и 7.0.4, обеспечивая согласованные методы разрешения выходов и расчета комиссий. Криптоновости подчеркивают необходимость срочного обновления затронутых приложений.
Источник:Показать оригинал
Отказ от ответственности: Информация на этой странице может быть получена от третьих лиц и не обязательно отражает взгляды или мнения KuCoin. Данный контент предоставляется исключительно в общих информационных целях, без каких-либо заверений или гарантий, а также не может быть истолкован как финансовый или инвестиционный совет. KuCoin не несет ответственности за ошибки или упущения, а также за любые результаты, полученные в результате использования этой информации.
Инвестиции в цифровые активы могут быть рискованными. Пожалуйста, тщательно оценивайте риски, связанные с продуктом, и свою устойчивость к риску, исходя из собственных финансовых обстоятельств. Для получения более подробной информации, пожалуйста, ознакомьтесь с нашими Условиями использования и Уведомлением о риске.