В криптовалютном протоколе содержалась опасная уязвимость, приводившая к исчерпанию доступной памяти при некорректно оформленной транзакции. Обнаруживший ее исследователь молчал два года, пока ту же уязвимость не обнаружил его коллега по цеху.

Память повышенной текучести

В базовом протоколе криптовалюты Bitcoin содержалась серьезная уязвимость, чреватая перерасходом оперативной памяти. Баг, получивший наименование INVDoS (Bitcoin Inventory Out-of-Memory Denial-of-Service), содержался в сетевом коде трех разных реализаций Bitcoin, а также нескольких других криптовалют на базе блокчейна — Litecoin, Namecoin и Decred.

Исследователь, обнаруживший эту уязвимость, Брэйдон Фуллер (Braydon Fuller), проинформировал о ней разработчиков Blockchain, но два года не публиковал никакой информации о ней.

По данным Фуллера, уязвимость может быть использована злоумышленниками для организации серверного сбоя: преднамеренно некорректная транзакция Bitcoin при обработке ее узлами блокчейн-сети может вызвать перерасходование памяти, что в итоге приводит к падению сервера.

По данным Фуллера, на момент обнаружения проблемы она затрагивала 50% общедоступных узлов Bitcoin с входящим трафиком, и, возможно, большую часть систем, на которых производилась генерация криптовалют. Затронуты были и криптобиржи.

 

Подтверждена уязвимость в Bitcoin Corev 0.16.0, Bitcoin Corev 0.16.1, 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, and всех версиях Dcrd до v1.5.1.

Уязвимость отсутствует к настоящему моменту в версиях Bitcoin Core v0.16.2 и далее, Bitcoin Knots v0.16.2 и далее, Bcoin v1.0.2 и более поздних, Btcd v0.21.0-beta и далее, Litecoin Core v0.16.2 и позднее, Namecoin v0.16.2 и далее и в релизах Dcrd после v1.5.2.

Эксплуатация не выявлена

По словам Фуллера, данная уязвимость может представлять повышенную угрозу, поскольку может приводить к серьезным задержкам в работе всей сети, торможение или блокировку транзакций и т. д.

Фуллер два года не хотел публиковать никакой информации об этой уязвимости, однако его коллега Джавед Хан (Javed Khan) обнаружил эту же уязвимость в другой криптовалюте, использующей более старую версию протокола Bitcoin.

К счастью, на данный момент нет никакой информации о практической эксплуатации данной уязвимости злоумышленниками.

«Уязвимость опасна главным образом тем, к каким последствиям её эксплуатация может привести; однако совершенно не факт, что её будет очень просто эксплуатировать, — считает Олег Галушкин, генеральный директор компании SEC Consult Services. — Собственно, об этом говорит тот факт, что никаких случаев практической эксплуатации до сих пор не выявлено, несмотря на популярность Bitcoin и повышенный интерес к ней со стороны экспертов по безопасности и хакеров. К слову, если уязвимость нашли два специалиста независимо друг от друга и в разное время, нет никаких гарантий, что её не обнаруживал кто-то другой — менее благонамеренный. И тем не менее, атак пока не наблюдалось».