Злоумышленник может приостанавливать осуществляемую жертвой транзакцию и запускать свою, сообщает Securitylab.
Команда исследователей из Саарского университета и Университета Эрлангена-Нюрнберга (Германия) обнаружила уязвимость в протоколе Zerocoin и еще две уязвимости в библиотеке libzerocoin, используемой для создания собственно криптовалюты на базе протокола. Эти уязвимости на том или ином уровне затрагивают как минимум пять криптовалют, созданных на основе Zerocoin: SmartCash, Zoin, zcoin, Hexxcoin и PIVX.
По данным исследователей, протокол подвержен уязвимости отказа в транзакции (denial-of-spending), позволяющей злоумышленнику приостанавливать осуществляемую жертвой транзакцию и запускать свою. В результате легитимной будет считаться операция злоумышленника, а операция пользователя будет принята как двойное расходования (повторная продажа одних и тех же активов).
Узнав о проблеме, разработчики PIVX, SmartCash и Hexxcoin деактивировали протокол Zerocoin в исходном коде своих криптовалют. В итоге все добытые через Zerocoin монеты «застряли» в кошельках пользователей. Разработчики SmartCash пообещали вернуть своим пользователям замороженные активы, а в PIVX протокол будет снова активирован после исправления уязвимости. Пользователи Zoin и Zcoin по-прежнему под угрозой, поэтому им следует воздержаться от проведения каких-либо транзакций до тех пор, пока не будет выпущено исправление.
Как уже упоминалось выше, исследователи также обнаружили две уязвимости в написанной на C++ PoC-библиотеке libzerocoin для реализации протокола Zerocoin. Одна из них позволяет злоумышленнику генерировать новые монеты, а вторая связана с неправильной подписью транзакций. Уязвимости затрагивают Zcoin, SmartCash, Zoin и Hexxcoin, однако, по словам исследователей, в настоящее время они уже исправлены.
Наличие проблем в libzerocoin и Zerocoin вполне ожидаемо, поскольку и библиотека, и протокол не поддерживаются уже несколько лет. На смену Zerocoin пришел Zerocash, лежащий в основе криптовалюты zcash, а в libzerocoin уже многие годы есть большой файл README с внушительными уведомлениями безопасности..