Разработчики XRP Ledger исправили критическую уязвимость платёжного механизма, которая могла позволить злоумышленнику создать доступные для трат XRP в объёме, значительно превышающем установленный сетью лимит в 100 миллиардов монет, за одну транзакцию, согласно отчёту о раскрытии информации от Veria Labs. Уязвимость существовала в коде xrpld с 2015 года, однако в отчёте говорится, что «нет свидетельств того, что эта проблема использовалась в какой-либо публичной сети».
Об уязвимости сообщили RippleX 22 сентября, а через три дня её исправили в версии xrpld 3.4.1. По данным Veria Labs, в день выпуска обновления более 80% валидаторов списка уникальных узлов XRP Ledger, используемого по умолчанию, установили этот релиз, что ограничило практическое окно для атаки на сеть.
Кайден Ляо, сооснователь Veria Labs, сообщил, что ИИ-агент обнаружил уязвимость и создал рабочий эксплойт. В публикации на X Ляо оценил, что одна вредоносная транзакция могла создать примерно 18 триллионов XRP — около 184 первоначальных максимальных объёмов предложения сети, — если бы она достигла уязвимой сети.
Расчёт платежа мог привести к переполнению
Уязвимость была связана с платежами, которые используют несколько предложений из децентрализованной книги ордеров XRP Ledger. Такие транзакции могут одновременно сопоставляться с множеством предложений, поэтому программному обеспечению необходимо суммировать объём XRP, выплачиваемый по каждому из них.
Согласно отчёту Veria Labs, при таком сложении отсутствовала проверка переполнения. В вычислениях переполнение происходит, когда число становится слишком большим для выделенного типа данных; вместо корректного большого значения результат может «обернуться» и превратиться в гораздо меньшее число.
Злоумышленник мог использовать несколько сотен аккаунтов, чтобы разместить предложения о продаже крошечной доли токена за чрезвычайно большие суммы XRP. Затем одна платёжная транзакция могла исполнить эти предложения. Платёжный механизм зачислил бы каждому продавцу указанную сумму XRP, тогда как рассчитанная стоимость для покупателя могла бы «обернуться» до «всего нескольких сотен дропов плюс комиссия», говорится в отчёте. Дроп — это наименьшая единица XRP, равная одной миллионной XRP.
Ошибка могла увеличить балансы XRP без надлежащего списания средств со счёта злоумышленника. Veria Labs сообщила, что отдельный защитный механизм, предназначенный для обнаружения вновь созданных XRP, использовал другую операцию сложения, подверженную переполнению. В результате внутренняя проверка предложения токенов протокола также могла не распознать искусственное увеличение балансов.
Масштаб теоретической эксплуатации относил её к совершенно иной категории по сравнению с типичной компрометацией биржи или кражей средств через мост. Вместо кражи уже существующих средств из определённого пула злоумышленник мог ввести в обращение новые единицы, доступные для расходования, потенциально подорвав доверие к правилам эмиссии реестра, если бы эти единицы достигли торговых площадок или других участников сети.
Исправление обошло обычный график внесения изменений
По словам Veria Labs, патч RippleX вступил в силу через обновление серверов, а не посредством стандартного процесса внесения изменений в XRP Ledger. Обычно изменения корректируют правила сети только после получения более 80% поддержки от доверенных валидаторов в течение двух недель.
Этот процесс призван дать операторам время на проверку и развёртывание обновлений до того, как правило протокола станет активным. В данном случае проблема безопасности потребовала более быстрой реакции: каждый сервер получал защиту после обновления оператором до xrpld 3.4.1.
Veria Labs назвала этот подход первым применением такого пути активации через обновление за более чем десятилетие внесения изменений в XRP Ledger. Это решение отражает практический компромисс при устранении уязвимости с коротким сроком исправления: широкое публичное обсуждение до повсеместного развёртывания патча может предоставить злоумышленникам достаточно технических деталей для восстановления эксплойта.
Джастин Бонс, основатель и главный инвестиционный директор Cyber Capital, написал в X, что исходный код xrpld 3.4.1 оставался закрытым около двух недель, прежде чем был опубликован. Маюкха Вадари, инженер-программист RippleX, заявила, что опасения по поводу быстрого обнаружения и обратной разработки повлияли на процесс выпуска.
Эта последовательность привлекла внимание, поскольку сети с открытым исходным кодом обычно полагаются на публичную проверку кода, тогда как временное ограничение доступа к исходному коду сокращает возможности независимого анализа. Подход RippleX отдавал приоритет предотвращению эксплуатации, пока операторы валидаторов разворачивали исправление, а затем опубликовал код после окончания критического периода.
Второй патч устранил проблему с функцией Batch
Версия 3.4.1 также устранила отдельную проблему, связанную с Batch — функцией, которая ещё не была активирована, когда исследователи обнаружили первый дефект. По словам Veria Labs, уязвимость Batch при определённых обстоятельствах могла остановить работу сети.
В отчёте говорилось, что злоумышленник не смог бы получить активы в блокчейне через проблему Batch. Потенциальный ущерб заключался в создании навсегда повреждённой записи реестра, которая могла нарушить работу сервисов вне блокчейна, таких как индексаторы, обозреватели блокчейна и комплекты средств разработки. Эти сервисы интерпретируют и организуют данные реестра для кошельков, приложений и пользователей; поэтому повреждённые записи могут создавать операционные проблемы, даже если балансы в реестре остаются неизменными.
Veria Labs сообщила, что Batch и исправление для него были активированы в пятницу, а серверы со старыми версиями программного обеспечения больше не могут оставаться синхронизированными с сетью. Это создаёт сильный стимул для остальных операторов обновиться, поскольку устаревшие серверы не могут надёжно отслеживать текущее состояние реестра.
Ляо сообщил, что Veria Labs получила максимальное вознаграждение в размере $250,000 за сообщение об уязвимостях. Награда отражает потенциальную серьёзность недостатка, затронувшего основную логику учёта публичного блокчейна, а не периферийное приложение.
Этот инцидент также подтверждает, что автоматизированный анализ кода становится практической частью поиска уязвимостей. Рассказ Ляо о том, как ИИ-агент обнаружил и эксплуатировал проблему, не доказывает, что автоматизация способна заменить проверку безопасности человеком, однако показывает, насколько быстро можно выявлять старые арифметические ошибки, когда исследователи сочетают автоматизированное сканирование с техническим пониманием правил транзакций протокола.
Исправление в XRP Ledger не позволило уязвимости перерасти в событие, связанное с выпуском активов и заметное для рынка. Оставшиеся вопросы касаются того, содержат ли другие зрелые кодовые базы блокчейнов аналогичные риски переполнения целых чисел в сложных путях обработки транзакций, особенно там, где несколько операций объединяются, а балансы проверяются отдельными процедурами учёта.
Вас беспокоят риски протокола после этой ошибки в XRP Ledger? Узнайте больше о динамике трансграничных платежей в этом анализе трансграничных платежей.
Отказ от ответственности: Содержимое этой страницы предоставлено исключительно в общих информационных целях и не отражает позицию или финансовые рекомендации Toobit. Мы не гарантируем точность или полноту этой информации и не несём ответственности за какие-либо ошибки, пропуски или последствия, возникшие в результате её использования. Инвестирование в цифровые активы сопряжено с риском; пользователям следует самостоятельно оценить своё финансовое положение и связанные с этим риски. Для получения дополнительной информации ознакомьтесь с нашими Условиями использования и Раскрытием информации о рисках.
