Во вторник, 18 сентября, состоялся внеплановый релиз клиента Bitcoin Core под версией 0.16.3, благодаря которому была устранена критическая уязвимость, угрожавшая осуществлением DOS-атаки на сеть. Эксплуатация бага была, впрочем, непростой задачей, и к счастью им никто не воспользовался.
Bitcoin Core 0.16.3 was released: https://t.co/SsbsJsqSTo
Upgrade recommended due to vulnerability fix— Bitcoin Core Project (@bitcoincoreorg) 18 September 2018
Как говорится в сопроводительных комментариях разработчиков Bitcoin Core, об уязвимости им сообщил пожелавший сохранить анонимность пользователь. Эксплуатация бага, который получил название CVE-2018-1744, позволяла злоумышленнику нарушить работу почти 90% нод, при этом для проведения атаки потребовалось бы всего 12.5 BTC – размер награды, получаемой в настоящее время майнерами за найденный блок. Встроенный в Bitcoin Core и предназначенный для ускорения распространения блоков движок The Fast Internet Bitcoin Relay Engine (FIBRE) при этом мог бы усугубить ситуацию.
В почтовой рассылке Optech объясняется, что баг CVE-2018-17144 появился в версии Bitcoin Core 0.14.0, релиз которой состоялся в ноябре 2016 года, и затрагивал все последующие версии вплоть до 0.16.2. Его эксплуатация позволяла нарушить работу сети при попытке валидировать блок, содержащий транзакцию, которая пытается дважды потратить один и тот же вход. Такой блок был бы недействительным и мог быть создан только майнерами, готовыми отказаться от потери награды в размере 12.5 BTC (около $80 000 по текущему курсу).
Операторам нод, соответственно, рекомендуется в срочном порядке обновиться до новой версии Bitcoin Core или до новой версии BitcoinABC для сети Bitcoin Cash. Клиент Bitcoin Unlimited уязвимость не затронула. Также о выпуске необходимого фикса сообщили разработчики Litecoin.
Разработчики также отдельно сделали акцент на том, что выявленная уязвимость могла иметь весьма негативные последствия для Lightning Network, по-прежнему находящейся в экспериментальной стадии сети для быстрых и дешевых транзакций.
Стоит отметить, что данная уязвимость оказалась результатом так называемого человеческого фактора, и несут за нее ответственность те разработчики, которые одобрили советующее изменение кода. В их числе оказались, например, Грегори Максвелл, Владимир ван дер Лаан и Мэтт Коралло.
Однако, как прокомментировал эту ситуацию разработчик OpenBazaar Крис Спасия, он не критикует виновных, а критикует «идиотов-минималистов», которые видят в разработчиках Bitcoin Core чуть ли не богов.
Bugs happen. This is a fact of life. I’m not criticizing them for having a bug. I’m criticizing the idiot minimalists who insist Core developers are God-like individuals and certainly The Best Devs in the World™
— Chris Pacia (@ChrisPacia) 18 September 2018
Со стороны разработчиков Bitcoin Core пока не последовало заявлений касательно того, будет ли проведен какой-либо анализ инцидента и будет ли сделан публичный отчет о причинах случившегося и как избежать повторения таких случаев в будущем.
Напомним, ранее ForkLog писал о готовящемся в выходу новому релизу Bitcoin Core 0.17.0.