
В XRP Ledger закрыли критическую уязвимость десятилетней давности
В XRP Ledger (XRPL) закрыли критическую уязвимость, которая позволяла выпускать новые XRP в обход правил эмиссии. По данным разработчиков, ошибка существовала в коде платежного механизма с 2015 года.
Изначально проблему обнаружили специалисты Veria Labs. Сооснователь компании Кейден Ляо отметил, что ошибку нашел ИИ-агент — он же создал действующий эксплойт.
Our AI found a bug that let anyone mint infinite XRP, with $94B at risk. It had been hiding in one of the most audited codebases in crypto for nearly a decade, and earned us the maximum $250K bounty. Here’s how it went unnoticed, and how we found it. https://t.co/m7rSD8mKS5
— SuperBeetleGamer (@Cayden_Liao) October 11, 2026
В основе уязвимости — целочисленное переполнение в расчетном механизме. Когда одна транзакция исполняла сразу много ордеров из книги заявок, итоговая сумма могла быть посчитана неверно.
Для атаки злоумышленнику потребовалось бы создать несколько сотен аккаунтов и выставить с них заявки на продажу небольшого количества токенов за непропорционально большие суммы в XRP. Крупный стартовый капитал ему не понадобился бы: он потратил бы лишь несколько сотен монет на резервы и обычные комиссии.
Затем он отправил бы транзакцию, которую специально составил так, чтобы она исполнила все заявки одновременно. Из-за переполнения покупатель заплатил бы всего несколько сотен дропов и комиссию, а продавцы получили бы полную стоимость ордеров. На разнице он фактически получил бы новые XRP, которые мог бы переводить и продавать.
Защитный механизм, который должен был блокировать выпуск монет из ниоткуда, опирался на ту же арифметику и потому не фиксировал нарушение.
По оценке Ляо, одной такой транзакции хватило бы, чтобы создать около 18 трлн XRP — примерно в 180 раз больше совокупного предложения криптовалюты (при общем предложении 100 млрд XRP).
Специалисты RippleX воспроизвели атаку на локальном сервере и подтвердили, что неправомерно выпущенные монеты можно потратить в последующих платежах. Следов эксплуатации уязвимости в публичных сетях команда не обнаружила.
Исправление без голосования валидаторов
Veria Labs сообщила о проблеме 22 сентября. Через три дня вышла версия серверного ПО xrpld 3.4.1 с исправлением.
Обычно изменения правил обработки транзакций в XRPL проходят процедуру поправок. Новое правило включается, только если его две недели поддерживают более 80% доверенных валидаторов.
На этот раз от стандартного механизма отказались: исправление начинало действовать на каждом узле сразу после обновления. Так поступили впервые за более чем десять лет существования системы поправок.
Причиной стала критичность уязвимости. Код xrpld открыт, поэтому любой релиз с патчем указывает и на саму ошибку. При обычной процедуре исправление несколько недель оставалось бы публичным, но еще не действовало. За это время злоумышленники могли бы найти баг и воспользоваться им.
Такой подход тоже нес риски. Пока сеть обновлялась, узлы с разными версиями ПО могли по-разному обработать вредоносную транзакцию. В худшем случае это привело бы к остановке сети.
Тем не менее команда сочла этот сценарий менее опасным, чем бесконтрольный выпуск новых XRP.
Более 80% валидаторов из списка по умолчанию установили новую версию в день релиза, 25 сентября. Исходный код обновления опубликовали лишь спустя примерно две недели.
По словам Ляо, Ripple выплатила Veria Labs максимальное вознаграждение по программе поиска уязвимостей — $250 000. Исследователь назвал его крупнейшей известной ему выплатой за баг, полностью найденный ИИ-агентом.
Ошибка в Batch
Обновление 3.4.1 также устранило отдельную ошибку в функции Batch. Она позволяет объединять до восьми транзакций в одну операцию.
Сервер не проверял, в какое поле обернута каждая вложенная транзакция. Из-за этого злоумышленник мог записать в реестр некорректную структуру. Такая запись осталась бы в истории навсегда и могла нарушить работу обозревателей блокчейна, индексаторов и SDK.
Кроме того, узлы с разными версиями ПО обработали бы такую операцию по-разному. При определенных условиях это грозило остановкой подтверждения новых реестров.
На момент обнаружения ошибки Batch еще не работала в основной сети, поэтому средства пользователей не пострадали.
В отличие от исправления платежного механизма, эту ошибку устранили через стандартное голосование валидаторов. Поправка fixBatchV1_2 вступила в силу 9 октября, незадолго до активации самой функции.
После инцидента команда XRPL введет обязательное повторное тестирование исправленных уязвимостей перед каждым релизом. Глава инженерного направления RippleX Дж. Айо Акинеле также заявил, что команда расширит поиск багов с помощью ИИ и применение формальной верификации кода.
Напомним, в середине августа злоумышленник вывел $200 000 из кроссчейн-моста XRP.