12 000 фальшивых копий из одной доли. В децентрализованном пуле Monero нашли критическую уязвимость, лишающую майнеров выплат

3143
12 000 фальшивых копий из одной доли. В децентрализованном пуле Monero нашли критическую уязвимость, лишающую майнеров выплат

Разработчики P2Pool призвали майнеров Monero срочно обновить ПО до версии 4.16 из-за активной атаки.

image

Майнеры Monero получили срочное предупреждение: в P2Pool нашли критическую ошибку, которую уже используют в реальной атаке. Разработчик проекта sech1 сообщил об активной эксплуатации уязвимости на Reddit и призвал всех участников сети немедленно обновить P2Pool до версии 4.16. Иначе часть будущих выплат за майнинг может достаться злоумышленнику.

P2Pool работает как децентрализованный пул для добычи Monero. Участники запускают собственные узлы, а награды распределяются без центрального сервера и без хранения средств у третьей стороны. Такая схема снижает зависимость от обычных пулов, но найденная ошибка ударила по механизму учёта долей, от которого зависит размер выплат.

При нормальной работе P2Pool каждый успешный результат майнинга создаёт одну уникальную долю. Уязвимость нарушала это правило: злоумышленник мог добыть одну настоящую долю, затем создать тысячи поддельных копий, а старые версии P2Pool принимали копии за корректные записи. В предупреждении GitHub говорится, что из одного удачного результата можно было получить более 12 000 фальшивых копий.

Атака влияла на окно выплат PPLNS, через которое P2Pool делит награду за найденный блок между майнерами. Поддельные доли заполняли окно и вытесняли честную работу других участников. В результате атакующий мог забрать до 80% награды, а при добыче следующей доли получить всю выплату за блок.

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

По словам sech1, сначала под удар попали цепочки P2Pool Mini и Nano, где часть майнеров не перешла на версию 4.16. Позднее атака затронула P2Pool Main: в предупреждении указано время 16 июня, 00:02:46 UTC. Разработчик также сообщил, что на момент публикации больше половины хешрейта Mini и Nano всё ещё приходилось на старый код, поэтому будущие выплаты этих участников могли снижаться в пользу атакующего.

sech1 и DataHoarder заявили, что начали майнить специально сформированные блоки, чтобы помешать злоумышленнику забрать выплаты и позднее вернуть средства пострадавшим майнерам. Авторы проекта планировали запросить у сообщества дополнительный хешрейт после подготовки безопасной схемы распределения.

Исправление уже доступно в P2Pool v4.16. В релизе закрыта консенсусная уязвимость, также добавлены улучшения сетевого кода, поддержка TLS для совмещённого майнинга через JSON-RPC и проверка состояния узла на зависание. Разработчики подчёркивают, что для защиты достаточно обновить P2Pool и перезапустить программу. Переносить монеты или менять кошелёк из-за ошибки не требуется.