XRP Ledger закрыл десятилетнюю уязвимость, которая могла позволить создать миллиарды долларов в XRP из ничего
Ключевые выводы
- •Уязвимость, предположительно существовавшая с 2015 года, была обнаружена исследователем Кейденом Лиао и Veria AI и внутренне сообщена 22 сентября.
- •RippleX воспроизвела атаку на автономном сервере и подтвердила, что созданные XRP можно было потратить, но не нашла свидетельств эксплуатации в публичной сети.
- •Исправление вышло в xrpld 3.4.1 25 сентября без первоначального публичного раскрытия, и, поскольку патч находится в серверном ПО, покрытие сети зависит от принятия обновления операторами.
- •Эксплойт использовал ошибку подсчёта во встроенной бирже реестра, где сотни аккаунтов с небольшими ордерами могли быть полностью оплачены одним платежом, тогда как с покупателя списывали почти ничего, оставляя злоумышленнику только что созданные XRP.
- •Существующие защиты, включая проверку эмиссии после транзакции и лимит получения на аккаунт, не выявили бы атаку, для подготовки которой требовалось лишь несколько сотен XRP плюс стандартные комиссии.

Уязвимость в платёжной системе XRP Ledger могла позволить злоумышленнику создать большое количество новых XRP, не оплачивая их, нарушив правило фиксированной эмиссии токена, согласно отчету о безопасности, опубликованному в пятницу.
Баг, предположительно существовавший с 2015 года, был обнаружен исследователем Кейденом Лиао и компанией Veria AI и внутренне сообщён 22 сентября. Инженеры RippleX, разработческого подразделения Ripple, воспроизвели атаку на автономном сервере — изолированной тестовой среде — и подтвердили, что созданные XRP можно было потратить в последующей транзакции.
RippleX сообщила, что не нашла свидетельств эксплуатации уязвимости в какой-либо публичной сети. Компания выпустила исправление в xrpld 3.4.1, серверном ПО реестра, 25 сентября, не раскрывая публично, что именно чинил релиз, — последовательность, типичная для скоординированного раскрытия уязвимостей, которая даёт операторам время обновиться до того, как технические детали, способные обеспечить атаки, станут публичными. Позже подробности были изложены в официальном отчете о раскрытии уязвимости команды. Поскольку патч находится в самом серверном ПО, его покрытие по сети зависит от того, насколько операторы примут обновлённый релиз.
Исследователи продемонстрировали, как один платёж мог создать расходуемые XRP без финансирования со стороны отправителя, что и побудило к экстренному выпуску ПО. Если бы уязвимость не была исправлена, она могла бы нарушить фиксированный объём эмиссии криптовалюты в 100 млрд токенов.
Прямая угроза лимиту эмиссии
Все 100 млрд XRP были созданы при запуске реестра в 2012 году, и его ПО спроектировано так, что новые токены никогда не могут быть добавлены. Поскольку дефицитность обеспечивается исключительно кодом, а не каким-либо эмитентом, баг, способный создавать токены, ударил бы по самой фундаментальной гарантии реестра. Однако данная уязвимость могла позволить злоумышленнику создать XRP из ничего и продать их на биржах, подорвав жёсткий лимит эмиссии, на который полагаются институты, строящие решения на этой сети.
Как работала атака
Эксплойт был нацелен на встроенную биржу реестра, где аккаунты размещают ордера на обмен одного токена на другой.
Теоретически злоумышленник мог открыть сотни аккаунтов, каждый из которых предлагал бы крошечное количество токена в обмен на необычно большое количество XRP, а затем отправить один платёж, скупающий все ордера сразу. Суммарное количество причитающихся XRP по этим объединённым ордерам оказалось бы слишком большим для корректного подсчёта программным обеспечением. В результате аккаунты продавца злоумышленника были бы оплачены полностью, тогда как с покупающего аккаунта списали бы почти ничего — оставив злоумышленнику XRP, которых ранее не существовало.
Фактически уязвимость представляла собой ошибку подсчёта во встроенной бирже, которая могла позволить сотням аккаунтов получить большое количество XRP при том, что покупатель платил бы почти ничего.
Почему существующие защиты не сработали
XRP Ledger выполняет проверку после каждой транзакции, чтобы убедиться, что новые XRP не появились, но эта проверка опиралась бы на тот же некорректно подсчитанный итог и пропустила бы расхождение. Отдельный лимит на то, сколько XRP может получить один аккаунт, также не сработал бы, поскольку атака распределяла созданные токены по сотням аккаунтов.
Методу исследователей требовалось лишь несколько сотен XRP для открытия этих аккаунтов — большая часть которых впоследствии была возвращена — плюс стандартные комиссии за транзакции.
Часть более широкой картины
Этот инцидент присоединяется к серии давно скрытых уязвимостей в криптобезопасности, выявленных с помощью ИИ с июля, включая баг кошелька Coldcard, из-за которого было похищено не менее 1 367 BTC, и уязвимости, вынудившие Core Lightning рекомендовать операторам биткоин-узлов отключиться.