Ранее нераскрытая уязвимость в коде Bitcoin Core, которая была устранена два года назад, потенциально позволяла злоумышленникам похищать средства, задерживать транзакции или разделить блокчейн на конфликтующие версии. Об этом говорится в статье, опубликованной в среду, 9 сентября, разработчиками Брейдоном Фуллером и Джаведом Ханом, которые обнаружили уязвимость в июне 2018 года.
Уязвимости был присвоен «высокий» уровень (7.8 по шкале от 1 до 10; 9 и выше считается «критическим»). В комментарии для Coindesk Хан сказал, что уязвимость связана с неспособностью «удаленных нод» удалять недействительные транзакции из памяти. «Не было механизма, чтобы удостовериться в действительности ожидающей обработки транзакции. В некоторых случаях вы могли заполнить память недействительными транзакциями», ― сказал Хан.
Хан и Фуллер не обнаружили никаких попыток воспользоваться этой уязвимостью. По словам Фуллера, она не могла быть раскрыта публично более двух лет из-за долгого обновления нод.
Уязвимость появилась в ноябрьском релизе Bitcoin Core 2017 года. Согласно статье, около 50% нод биткоина в то время могли быть атакованы. Уязвимость была устранена Мэттом Коралло в версиях Bitcoin Core 0.16.0 и 0.16.1 после того, как Фуллер сообщил о ней команде основных разработчиков биткоина в июле 2018 года. После сообщения Фуллера был обнаружен еще один баг, который был устранен двумя месяцами позже в Bitcoin Core 0.16.3. По словам Хана, уязвимость позволяла злоумышленнику похищать средства с нод, которые имели открытые каналы в Lightning Network.
Bitcoin Core ― это эталонная реализация или стандартная версия ПО биткоина, на основе которой разрабатываются другие реализации и форки. Согласно статье Фуллера и Хана, уязвимость была обнаружена и устранена в следующих версиях:
- Bitcoin Knots v0.16.0
- Все бета-версии Bcoin до v1.0.0-pre
- Все версии Btcd до v0.20.1-beta
- Litecoin Core v0.16.0
- Namecoin Core v0.16.1
- Все версии Dcrd до v1.5.1.