Разработчики XRP Ledger устранили критическую уязвимость, которая позволяла создавать новые монеты XRP в обход правил эмиссии. Об этом сообщает Forklog: ошибка находилась в коде платежного механизма сети с 2015 года.
Кто нашел ошибку и как
Брешь обнаружили специалисты компании Veria Labs. Ее сооснователь Кейден Ляо рассказал, что уязвимость нашел ИИ-агент, он же подготовил рабочий эксплойт. По словам Ляо, под угрозой находилось около $94 млрд, а за находку компания получила максимальное вознаграждение по баг-баунти в $250 тыс.
Сообщение о проблеме разработчики получили 22 сентября. Через три дня вышла версия серверного ПО xrpld 3.4.1 с исправлением.
В чем была суть уязвимости
Причиной стало целочисленное переполнение в расчетах. Если одна транзакция закрывала сразу множество ордеров из книги заявок, итоговая сумма могла посчитаться неправильно.
Схема атаки выглядела так:
- злоумышленник создает несколько сотен аккаунтов;
- с них выставляются заявки на продажу небольших объемов токенов за непропорционально большие суммы в XRP;
- затем отправляется специально составленная транзакция, которая исполняет все заявки одновременно.
Из-за переполнения покупатель платил лишь несколько сотен дропов (минимальных единиц XRP) и комиссию, а продавцы получали полную стоимость ордеров. Разница по сути превращалась в новые монеты, которые можно переводить и продавать. Начальный капитал почти не требовался: хватило бы нескольких сотен XRP на резервы аккаунтов и сетевые сборы.
Защитная проверка, призванная ловить появление монет из ниоткуда, использовала ту же арифметику и поэтому нарушения не замечала.
Масштаб потенциального ущерба
По оценке Ляо, одной такой транзакции хватило бы для выпуска около 18 трлн XRP. Это примерно в 180 раз больше всего нынешнего предложения в 100 млрд монет. Специалисты RippleX воспроизвели атаку на локальном сервере и подтвердили, что созданные таким образом монеты можно потратить в последующих платежах. Следов эксплуатации уязвимости в публичных сетях команда не нашла.
Исправление без голосования валидаторов
Обычно изменения правил обработки транзакций в XRPL проходят через механизм поправок: новое правило активируется, если в течение двух недель его поддерживают более 80% доверенных валидаторов. В этот раз так не поступили. Патч начал действовать на каждом узле сразу после установки обновления. За более чем десять лет существования системы поправок это произошло впервые.
Причина в открытом коде xrpld. Любой релиз с исправлением выдает и сам факт ошибки, а при стандартной процедуре патч оставался бы на виду несколько недель, но еще не работал. За это время злоумышленники могли бы разобраться в баге и воспользоваться им.
У такого решения были свои риски. Пока сеть обновлялась, узлы с разными версиями ПО могли по-разному обработать вредоносную транзакцию, и в худшем случае это привело бы к остановке сети. Команда сочла такой сценарий менее опасным, чем неконтролируемый выпуск XRP. Более 80% валидаторов из списка по умолчанию уже установили новую версию.
Что это значит для российских инвесторов
Если вы храните XRP на бирже, например на Bybit или MEXC, или держите монеты на кошельке, обновлять ничего не нужно: патч касается серверного ПО узлов. Обновиться до xrpld 3.4.1 стоит тем, кто сам запускает узел или валидатор XRPL. Эксплуатации уязвимости не зафиксировано, поэтому причин срочно выводить или продавать активы нет.
Для тех, кто покупает XRP через P2P или обменник «Сова», ничего не меняется. Остаются обычные риски: блокировки карт при P2P-переводах и необходимость учитывать доход от операций с криптовалютой при декларировании. Пересчитать позицию в другие активы можно через конвертер XRP/USDT. Сам эпизод показывает, что даже давно проверенный код может годами скрывать критические ошибки.