Ошибка в механизме платежей XRP Ledger позволила одному платежу чеканить новые XRP из ничего. Она пролежала в коде около десятилетия, а исправление вышло в продакшн до того, как кто-либо успел это прочитать.
Движок суммировал, сколько покупатель должен по оферам, с помощью обычного 64-битного счетчика. Несколько сотен специально созданных оферов, каждый из которых запрашивал огромный объем XRP, протолкнули сумму за предел и она переполнилась почти до нуля. Продавцы получили оплату полностью, покупатель заплатил почти ничего, а проверка на "не создано новых XRP" использовала тот же счетчик, поэтому ничего не заметила.
По нашим расчетам, этот счетчик упирается примерно в 9,2 трлн XRP, то есть примерно в 92 раза больше предложения в 100 млрд. Ни один аккаунт не может держать больше, чем все предложение целиком, поэтому атаке требовалось как минимум 93 принимающих аккаунта.
Кейден Ляо и Veria AI сообщили об уязвимости через программу bug bounty XRPL 22 сентября. xrpld 3.4.1 вышел 25 сентября, при этом его исходный код был скрыт, и в тот же день его запустили более 80% валидаторов default UNL. Он обошел голосование за amendment — впервые за исправление, затрагивающее обработку транзакций, за более чем десять лет. RippleX не нашел признаков того, что уязвимость когда-либо использовалась в публичной сети.
Около десяти лет в коде. Три дня на патч.
$XRP
#XRP #CryptoSecurity
NFA. DYOR.
Движок суммировал, сколько покупатель должен по оферам, с помощью обычного 64-битного счетчика. Несколько сотен специально созданных оферов, каждый из которых запрашивал огромный объем XRP, протолкнули сумму за предел и она переполнилась почти до нуля. Продавцы получили оплату полностью, покупатель заплатил почти ничего, а проверка на "не создано новых XRP" использовала тот же счетчик, поэтому ничего не заметила.
По нашим расчетам, этот счетчик упирается примерно в 9,2 трлн XRP, то есть примерно в 92 раза больше предложения в 100 млрд. Ни один аккаунт не может держать больше, чем все предложение целиком, поэтому атаке требовалось как минимум 93 принимающих аккаунта.
Кейден Ляо и Veria AI сообщили об уязвимости через программу bug bounty XRPL 22 сентября. xrpld 3.4.1 вышел 25 сентября, при этом его исходный код был скрыт, и в тот же день его запустили более 80% валидаторов default UNL. Он обошел голосование за amendment — впервые за исправление, затрагивающее обработку транзакций, за более чем десять лет. RippleX не нашел признаков того, что уязвимость когда-либо использовалась в публичной сети.
Около десяти лет в коде. Три дня на патч.
$XRP
#XRP #CryptoSecurity
NFA. DYOR.
