Альткоины

Десятилетняя ошибка в реестре XRP могла создать XRP из ниоткуда

Что на самом деле не работало?

Проблема заключалась в коде, отвечающем за расчет платежей на встроенной децентрализованной бирже (DEX) $XRP Ledger. Согласно официальному отчету о раскрытии уязвимости, опубликованному вчера, когда один платеж охватывал множество предложений, механизм суммировал суммы с использованием непроверенной 64-битной арифметики.

При достаточно большом увеличении этой суммы происходил «перенос», то есть переполнение целого числа. Гигантское число впоследствии превращалось в маленькое, и продавцы на другой стороне сделки получали полную оплату, но с покупателя списывалась только «перенесенная», крошечная сумма. Разница представляла собой $XRP, которых ранее не существовало.

В реестре действительно выполняется проверка безопасности, известная как «инвариант», которая должна подтверждать, что $XRP никогда не создаётся. Эта проверка использовала ту же непроверенную математику, поэтому она не смогла обнаружить именно ту ошибку, для выявления которой и была создана. В отчёте указывается, что источником уязвимости является текущий платежный движок, написанный в 2015 году.

Будьте в курсе
движения ваших монет

Алерты, котировки в реальном времени и новости рынка — в одном приложении

4,8 на основе 40 К оценок в App Store и Google Play

Насколько дешевой была бы такая атака?

Согласно отчету, затраты составили несколько сотен $XRP, заблокированных в качестве резервов (которые возвращаются после удаления объектов), плюс обычные комиссии за транзакции. Злоумышленнику потребовалось бы разместить сотни предложений с намеренно заниженной ценой, а затем пропустить через них один платеж.

Самым пугающим был потенциальный ущерб: в RippleX назвали эту ошибку критической, поскольку в рамках одной подтвержденной транзакции могло быть создано количество $XRP, превышающее общий объем предложения. Вся концепция $XRP основана на жестком ограничении в 100 миллиардов токенов, поэтому незаметное создание новых токенов подорвало бы основное обещание актива. Именно поэтому в таких публикациях, как пост от Whale Insider, эту уязвимость описывали как ошибку, которая могла бы привести к появлению «миллиардов» $XRP.

Кто обнаружил ошибку и как быстро её устранили?

Хронология событий была довольно краткой и выглядела следующим образом:

  • 22 сентября: Кейден Ляо и Veria AI представили свои выводы через программу XRPL Bug Bounty, присвоив им уровень «Major».
  • 23 сентября: RippleX воспроизвела ошибку, повысила её уровень до «критического», и исправление было внедрено.
  • 25 сентября: была выпущена версия Xrpld 3.4.1, и в тот же день на ней работали более 80% валидаторов из списка уникальных узлов (UNL) по умолчанию.
  • 9 октября: публичное раскрытие информации.

Патч не прошел обычное голосование по поправкам, а был выпущен в виде прямого изменения кода в версии 3.4.1 и вступил в силу по мере обновления каждого сервера. Исходный код был опубликован только после развертывания — это стандартный шаг, призванный не дать злоумышленникам «карту». С тех пор аккаунт XRPL Operations установил версию 3.4.1 в качестве минимально требуемой, добавив:

Мы не обнаружили никаких доказательств того, что эта уязвимость была использована в какой-либо публичной сети.

В том же релизе была исправлена вторая уязвимость, имеющая более низкий уровень серьезности. Она касалась способа формирования пакетных транзакций, и её исправление реализовано в поправке fixBatchV1_2, которая была запущена в Mainnet 9 октября одновременно с BatchV1_1. В отчёте указано, что в результате этой уязвимости средства также не были утрачены.

Это сообщение появилось в неблагоприятную для криптовалютной безопасности неделю, поскольку убытки от потери устройств Ledger, о которых сообщал Bitcoin.com News, достигли, по оценкам, 93,4 млн долларов. Наконец, компания Evernorth, поддерживаемая Ripple, готовится в понедельник начать торги на Nasdaq под тикером XRPN, имея на счетах примерно 473 млн $XRP. $XRP также расширяет своё присутствие в сфере децентрализованных финансов (DeFi): недавно Firelight активировала в сети функцию защиты хранилища.

Источник

Добавить комментарий

Кнопка «Наверх»
  • bitcoinBitcoin (BTC) $ 83,827.00
  • ethereumEthereum (ETH) $ 2,543.85
  • tetherTether (USDT) $ 0.999133
  • usd-coinUSDC (USDC) $ 0.999686
  • tronTRON (TRX) $ 0.329893
  • zcashZcash (ZEC) $ 1,284.60
  • dogecoinDogecoin (DOGE) $ 0.086829
  • chainlinkChainlink (LINK) $ 13.35
  • moneroMonero (XMR) $ 538.19
  • cardanoCardano (ADA) $ 0.251332
  • leo-tokenLEO Token (LEO) $ 8.89
  • stellarStellar (XLM) $ 0.202863
  • bitcoin-cashBitcoin Cash (BCH) $ 286.93
  • litecoinLitecoin (LTC) $ 64.83
  • daiDai (DAI) $ 1.00
  • hedera-hashgraphHedera (HBAR) $ 0.094214
  • crypto-com-chainCronos (CRO) $ 0.060802
  • okbOKB (OKB) $ 125.95
  • ethereum-classicEthereum Classic (ETC) $ 8.47
  • algorandAlgorand (ALGO) $ 0.126828
  • kucoin-sharesKuCoin (KCS) $ 7.75
  • cosmosCosmos Hub (ATOM) $ 1.92
  • vechainVeChain (VET) $ 0.007977
  • dashDash (DASH) $ 52.96
  • true-usdTrueUSD (TUSD) $ 0.998449
  • tezosTezos (XTZ) $ 0.322458
  • decredDecred (DCR) $ 16.74
  • iotaIOTA (IOTA) $ 0.052674
  • basic-attention-tokenBasic Attention (BAT) $ 0.160175
  • neoNEO (NEO) $ 2.65
  • 0x0x Protocol (ZRX) $ 0.128018
  • qtumQtum (QTUM) $ 0.999885
  • ontologyOntology (ONT) $ 0.060869
  • liskLisk (LSK) $ 0.221086
  • ravencoinRavencoin (RVN) $ 0.001857
  • wavesWaves (WAVES) $ 0.274693
  • paxos-standardPax Dollar (USDP) $ 0.997888
  • iconICON (ICX) $ 0.015054
  • huobi-tokenHuobi (HT) $ 0.138206
  • bitcoin-diamondBitcoin Diamond (BCD) $ 0.061182
  • monacoinMonaCoin (MONA) $ 0.074023
Закрыть
Закрыть