Kryptoměnová síť XRP Ledger obsahovala přibližně deset let závažnou bezpečnostní chybu, která mohla útočníkům umožnit vytvářet nové XRP bez odpovídající platby. Zranitelnost ohrožovala základní pravidlo kryptoměny, jejíž počáteční zásoba činila 100 miliard tokenů. Vývojáři problém opravili už koncem září, podrobnosti však zveřejnili až nyní. Podle dostupných informací nebyla chyba ve veřejné síti zneužita.
Zranitelnost objevil bezpečnostní výzkumník Cayden Liao ve spolupráci se společností Veria AI. Na problém upozornili 22. září prostřednictvím programu odměn za nalezené bezpečnostní chyby. Vývojáři RippleX následně útok úspěšně zopakovali v izolovaném testovacím prostředí a potvrdili, že nově vytvořené XRP lze skutečně převádět a utrácet. Závažnost chyby proto zvýšili na kritickou.
Chyba umožňovala obcházet omezenou zásobu XRP
Problém spočíval v nesprávném zpracování čísel při platbách využívajících integrovanou kryptoměnovou burzu. Útočník mohl vytvořit stovky účtů a prostřednictvím speciálně připravených obchodních nabídek vyvolat situaci, při které systém chybně vypočítal celkovou hodnotu transakce.
Každá nabídka by požadovala velké množství XRP výměnou za nepatrné množství jiného tokenu. Pokud by jediná platba zpracovala dostatečný počet takových nabídek, součet požadovaných částek by překročil rozsah, který dokázal systém správně zpracovat.
Jednotlivým účtům by přesto připsal celé požadované částky, zatímco kupujícímu by odečetl jen nepatrný zlomek jejich skutečného součtu. Rozdíl by představoval nově vytvořené XRP, které před transakcí v síti neexistovaly.
Za běžných okolností XRP Ledger kontroluje, zda při transakcích nevznikají nové mince. Jenže stejná početní chyba ovlivňovala také tento ochranný mechanismus, takže by podvodná transakce kontrolou prošla.
Útok by navíc nevyžadoval vysoký počáteční kapitál. K vytvoření potřebných účtů a nabídek by podle bezpečnostní analýzy stačilo několik stovek XRP, z nichž by bylo možné většinu následně získat zpět. Jedinou transakcí by přitom útočník mohl vytvořit množství XRP výrazně převyšující celkovou původní zásobu kryptoměny.
Vývojáři připravili mimořádnou opravu
Podle vyšetřování chyba pravděpodobně existovala už od roku 2015, kdy vznikla současná podoba platebního systému. Přesto zůstala nepovšimnuta, protože běžné transakce nemohou dosáhnout hodnot potřebných k jejímu vyvolání.
Oprava vyšla 25. září jako součást aktualizace xrpld 3.4.1. Vývojáři tentokrát zvolili mimořádný postup a obešli standardní schvalování změn pravidel sítě. To běžně vyžaduje podporu více než 80 procent důvěryhodných validátorů po dobu dvou týdnů.
Rozhodli se tak kvůli závažnosti problému. Pokud by opravu zveřejnili před jejím aktivováním, mohli by útočníkům poskytnout čas k využití zranitelnosti. Více než 80 procent validátorů z výchozího důvěryhodného seznamu proto přešlo na novou verzi ještě v den jejího vydání. Oprava začala na jednotlivých serverech fungovat okamžitě po aktualizaci.
Podrobnosti byly zveřejněny 9. října společně s informacemi o další opravené zranitelnosti. Ta souvisela s hromadným zpracováním transakcí a mohla za určitých podmínek způsobit neshody mezi servery, a tím zastavit potvrzování nových transakcí. Příslušná funkce však v době objevení chyby ještě nebyla aktivní ve veřejné síti.
Vývojáři dosud nezjistili žádné důkazy o zneužití chyby umožňující vytváření XRP ve veřejné síti. Do budoucna plánují důslednější ověřování bezpečnostních oprav a další testování základního softwaru XRP Ledgeru.


