Нейтральная

XRPL 3.4.1 исправляет переполнение платежей, позволявшее выпустить 18 трлн XRP

3 мин

RippleX и XRP Ledger Foundation раскрыли и исправили уязвимость в платежном движке, которая теоретически могла создать около 18 трлн доступных для траты XRP в одной транзакции, что значительно превышает задуманный объем эмиссии в 100 млрд XRP. Исследователи не обнаружили признаков эксплуатации в публичных сетях и фактов несанкционированного создания XRP. Исправление вошло в xrpld 3.4.1.

XRP Ledger: переполнение при оплате — механизм и исправление

Платежный движок агрегирует офферы из ордербука при маршрутизации платежа по пути. Необработанное переполнение целого могло возникать при суммировании объёмов из множества офферов: когда сумма превышала максимум типа, она «переливалась» и превращалась в меньшее значение. Движок по-прежнему выплачивал владельцам офферов полные индивидуальные суммы, но списывал с покупателя только «перелитый» итог. Разница превращалась в вновь начисленные XRP. Инвариант «никаких новых XRP не создано» использовал ту же арифметику с переполнением, поэтому не обнаруживал несоответствие.

Область затронутых версий: xrpld 3.4.0 и более ранние. Проблема была сообщена через XRPL Bug Bounty 22 сентября 2026 года. Текущий платежный движок появился в 2015 году, и изъян мог существовать с тех пор. В xrpld 3.4.1, выпущенном 25 сентября, добавили проверки переполнений с отклонением путей, которые превышают лимиты, и обновили проверку инварианта по предложению с более широким счетчиком, а также усилили код суммирования балансов.

Оценка воздействия: теоретическое воздействие, признаков взлома не обнаружено

Приблизительная цифра в 18 трлн XRP описывает теоретическую уязвимость в рамках одной транзакции — примерно в 180 раз больше задуманного объёма эмиссии. Для срабатывания требовались специально составленные офферы и платеж, поглощающий сразу множество офферов. В раскрытиях указано, что подтверждённых случаев эксплуатации в публичных сетях не выявлено, утраты средств нет.

Смягчение в 3.4.1: обнаружение переполнений при суммировании с отказом пути при переполнении, более широкие счетчики для инварианта «нет созданных XRP», и усиление логики суммирования балансов.

Контекст обновления XRPL и дополнительный патч

xrpld 3.4.1 исправил две проблемы. Вторая: валидация внутренних оболочек транзакций в Batch-транзакциях, затрагивала 3.3.0 и 3.4.0. Поправка BatchV1_1 не была активна в Mainnet на момент обнаружения. Эта проблема с пакетами не связана с переполнением в платежах.

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

Оригинальная публикация

Авторы, указанные в источнике: Daniel Francis

Материал опубликован Holder на основе внешнего источника.