Solana kütüphane hatası ile milyonlarca dolar çalınabilirdi
Araştırmacılara göre, Solana projeleri için bir dizi referans belgesi olan Solana Protokol Kitaplığı’ndaki (SPL) bir hata, saldırganların birden fazla Solana projesinden saatte 27 milyon dolar para çalmasını sağlamış olabilir.
Etkilenen projeler arasında getiri toplayıcı Tulip Protocol ve kredi protokolleri Solend ve Larix yer aldı. Bu projeler şu anda 1,7 milyar dolarlık fona sahip (bu, bugünün piyasa çöküşünden önce oldukça yüksek olmasına rağmen).
Milyon dolarlık bir hata
Bir blog gönderisinde Neodyme, hatanın ilk olarak Neodyme’in Simon olarak bilinen denetçilerinden biri tarafından dosya paylaşım platformu GitHub‘da Haziran ayında kamuya açıklandığını açıkladı. O zaman, güvenlik araştırmacıları bunun istismar edilebilir olup olmadığını veya etkisinin ne kadar büyük olabileceğini bilmiyorlardı. Hata dikkate alınmadı.
1 Aralık’ta Simon, sorunun hala açık olduğunu ve hatanın düzeltilmediğini gördü. Neodyme’deki güvenlik araştırmacıları, endişelerinden dolayı, hatadan yararlanmanın mümkün olup olmadığını ve ne kadar ciddi olduğunu ölçmek için test etmeye başladı. Neodyme’e göre hata “görünüşte zararsız bir yuvarlama hatasıydı”, ancak milyonlarca küçük parça halinde bir servet çalma potansiyeline sahip olduğunu çabucak keşfettiler.
Hata nasıl çalıştı?
Basitçe söylemek gerekirse, Solana uygulamaları için ne zaman para yatırdığınız ve ne zaman çıkardığınız için bir mekanizma vardır. Protokol SPL referans belgelerini takip ederse, para çekme noktasındaki en yakın tam sayıya yuvarlarlar. Bu, yalnızca kullanıcının Lamport olarak bilinen en küçük referans biriminin bir kısmına borçlu olması durumunda gerçekleşir (bu, en küçük bitcoin miktarı olan satoshi’ye benzer).
Ancak bu her iki şekilde de çalıştı. Bazı insanlar, tokenlarının fazlasını elde etti. Bazı insanlar ise ellerindekinin bir kısmını kayıp etti. Ancak kişi başına küçük bir miktar olduğundan dolayı hata pek dikkate alınmadı.
Ancak araştırmacılar, sistemi oynayacak biri var mıydı, diye merak ettiler, kesinlikle küçük ekstra miktarları alabilirler mi? Ve bunu tekrar tekrar yapsalardı, belki önemli miktarda para kazanabilirlerdi.
Araştırmacılar teorilerini blok zincirinin bir kopyası üzerinde pratikte test ettiler. Hatadan yararlanmak için tasarlanmış bir işlem gönderdiler ve yuvarlama hatası nedeniyle 0,00001 BTC’yi (0,047 $) çalmayı başardılar.
Araştırmacılar, bu hatayı tek bir işlemde 150-200 kez çalıştırabileceklerini ve bu işlemlerin birçoğunu tek bir bloğa koyabileceklerini tahmin ettiler. Böyle bir istismarın, saniyede 7.500 dolar veya saatte 27 milyon dolar oranında fon çalabileceğini düşündüler.
Toplamda ne kadar çalınabileceği konusunda, bu tür bir istismarın fark edilmeden ve korumalar uygulanmadan önce ne kadar sürdüğü bilinmiyor. Bu, saldırganların ne kadar bariz olduğuna ve saldırıyı hızlı mı yoksa yavaş mı yaptıklarına bağlı olacaktı. Ancak araştırmacılar, risk altında bir milyar dolardan fazla olduğunu düşünüyorlar.
Araştırmacılar, bu hatadan etkilendiğine inandıkları birden fazla Solana projesiyle hızla iletişime geçti. Birçok Solana projesi kapalı kaynak olduğundan, çok daha zor bir işti ve birkaç projeyi yanlış tanımladılar. Ama hepsi hatayı düzelten Solend, Tulip ve Larix ile iletişime geçmeyi başardılar.
Hatanın açıklanmasından bu yana, Solana Labs, talimatlarını takip eden yeni projelerin onu bir daha tanıtmayacağından emin olmak için referans belgelerini de düzeltti.