Back to Blog

Solana rBPF'de Yeni Tam Sayı Taşması Hatası Keşfedildi

Code Auditing
30 Aralık 2021
3 min read

Son zamanlarda, güvenlik açığı tespit sistemimiz Solana'nın rBPF'sinde (yani tüm Solana dApp'lerinin üzerinde çalıştığı sanal makine: https://github.com/solana-labs/rbpf) kritik bir sorun keşfetti. Dikkatli bir araştırmanın ardından, bunun tüm Solana ağını çökertmek için istismar edilebilecek bir tam sayı taşması hatası olduğunu tespit ettik. Hatayı Solana güvenlik ekibine bildirdik ve ekip, hatayı doğrulamak ve düzeltmek için hemen harekete geçti. Bu yazının kaleme alındığı tarih itibarıyla, neredeyse tüm doğrulayıcı düğümler yamayı alarak en son sürüme yükseltti; bu da kamuoyuna açıklama yapmanın güvenli olduğu anlamına geliyor.

eBPF ve rBPF

Genişletilmiş Berkeley Paket Filtresi (eBPF[1]), başlangıçta çekirdekteki paketleri filtrelemek için geliştirilmiştir. eBPF'nin güvenliği, verimliliği ve ölçeklenebilirliği sayesinde artık ağ iletişimi, izleme, profil oluşturma vb[2] gibi çeşitli alanlarda kullanılmaktadır. eBPF'nin zengin yetenekleri göz önünde bulundurularak Solana, onu akıllı sözleşmeler için yürütme motoru olarak da seçmiştir. Solana üzerinde dApp geliştirmek için geliştiricilerin, eBPF bayt koduna derlenen Rust dilinde akıllı sözleşmeler geliştirmeleri gerekmektedir.

Solana'nın dApp'lerini barındırmak için eBPF'ye yönelik hassas bir sanal makineye ihtiyaç duyulmaktadır. Bu durumda Solana, Rust ile yazılmış bir eBPF sanal makinesi olan rBPF'yi kullanmaktadır. Ancak önerilen sanal makinenin (yani rBPF'nin) sağlam, güvenli ve hassas olup olmadığı bilinmemektedir. rBPF içinde güvenlik sorunlarının bulunması durumunda, rBPF içeren tüm doğrulayıcılar etkilenebilir ve bu durum tüm Solana ağı için büyük kayıplara (örn. DDoS saldırısı) yol açabilir.

Hatanın Temel Nedeni

rBPF için hataları tespit eden bir araç geliştirdik. Bu araç hâlâ aktif geliştirme aşamasındadır. Bu süreçte rBPF'de (sürüm 0.2.16) tüm ağı çökertebilecek ciddi bir sorun tespit edildi.

Özellikle, "elf.rs" dosyasındaki "load" işlevi, ELF dosyasını (akıllı sözleşmeyi) ayrıştırmak ve doğrulamak için kullanılmaktadır. İlk olarak "load" işlevi, ELF yapısını okuyarak çağrılan fonksiyon ofsetini ayarlamak için "relocate" işlevini çağırır. Ancak "relocate" işlevinde, "sym.st_value" özelliği doğrudan ELF dosyasından alınmaktadır. "st_value" yeterince büyükse, "sym.st_value" ile "refd_pa"nın toplamı olan "addr" hesaplanırken tam sayı taşması tetiklenebilir.

Bu durumda, bir saldırgan tam sayı taşmasını tetikleyebilecek kötü amaçlı bir ELF dosyasını akıllı sözleşme olarak oluşturabilir. Bunun ardından her doğrulayıcı hedef ELF dosyasını çalıştıracak ve rBPF "add with overflow" hatasıyla panik yapacaktır.

Bu noktada rBPF kilitlenecek ve gelen işlemler yürütülemeyecek, bu da bir DoS saldırısına yol açacaktır. ELF dosyasını yüklerken oluşan tam sayı taşması nedeniyle düğümün aşağıda gösterildiği gibi "Finalizing transaction" aşamasında takılı kaldığı gözlemlenebilir.

Bu sorun https://github.com/solana-labs/rbpf/pull/200 adresinde tanıtıldı; bu da rBPF'nin 0.2.14 sürümünden itibaren açığa sahip olduğu anlamına gelmektedir. Sorunu tespit ederek 6 Aralık 2021'de Solana güvenlik ekibine bildirdik. Solana, raporumuzun ardından birkaç saat içinde güvenli matematik mekanizmasını kullanarak sorunu düzeltti. Düzeltme https://github.com/solana-labs/rbpf/pull/236 adresinde yer almaktadır. Bu yazının kaleme alındığı tarihte (2021/12/30), doğrulayıcıların %86'sından fazlası en yeni sürüme yükseltme yapmıştır.

[1] https://en.wikipedia.org/wiki/Berkeley_Packet_Filter

[2] https://ebpf.io/

Zaman Çizelgesi

  • 2021/12/06: sorun Solana güvenlik ekibine bildirildi
  • 2021/12/06: güvenlik açığı giderildi.
  • 2021/12/30: bu güvenlik açığına ilişkin bilgiler yayımlandı
  • 2022/01/28: CVE-2021–46102 atandı
Sign up for the latest updates
Yaklaşık 5,57 milyon USD Kayıp: X100 Freezer ve NEM İstismarları | BlockSec Haftalık Bülteni
Security Insights

Yaklaşık 5,57 milyon USD Kayıp: X100 Freezer ve NEM İstismarları | BlockSec Haftalık Bülteni

Bu haftalık rapor, 19.10.2026–25.10.2026 tarihleri arasında Ethereum ve BNB Chain'de yaşanan iki güvenlik olayını ele alıyor. X100 Freezer'ın flaş krediyle finanse edilen yönetişim kontrolünün ele geçirilmesini ve BNB Chain'deki bir NEM tokeninin likidite havuzunu etkileyen vergi hesaplaşması kusurunu inceliyor. Raporun kapsamındaki tahmini kayıplar toplam yaklaşık 5,57 milyon USD: temsili X100 işleminden ~4,75 milyon USD, NEM havuzu olayından ise ~820 bin USD. Bu toplama, ayrıca bildirilen sonraki X100 fon çıkışları dahil değil.

Yaklaşık 3,87 milyon USD kayıp: Autheo Network ve UNCX saldırıları | BlockSec Haftalık Bülteni
Security Insights

Yaklaşık 3,87 milyon USD kayıp: Autheo Network ve UNCX saldırıları | BlockSec Haftalık Bülteni

Bu haftalık rapor, 12.10.2026–18.10.2026 tarihleri arasındaki 3 güvenlik olayını ve toplamda yaklaşık 3,87 milyon USD tutarındaki tahmini kaybı ele alıyor. Autheo Network, yaklaşık 1,76 milyon USD tutarında kayba yol açan bir özel anahtar ele geçirilmesi olayı yaşadı; Qubic Wallet, zayıf seed oluşturma nedeniyle yaklaşık 1,30 milyon USD kaybetti. UNCX Network’ün Smart Token Vesting V2 sözleşmelerinde ise Ethereum, BNB Chain, Base ve Robinhood Chain üzerinde yaklaşık 807 bin USD tutarında bir muhasebe hatası meydana geldi. Öne çıkarılan UNCX analizi, hatalı toplam pay hesaplamasının farklı token/pay oranlarıyla oluşturulan hak ediş dilimlerini nasıl birbirine karıştırdığını ve ortak havuzlardan hak edilenden fazla çekim yapılmasına nasıl olanak tanıdığını açıklıyor.

~542 bin dolar kayıp: MakerDaoBot Açığı | BlockSec Haftalık Bülteni
Security Insights

~542 bin dolar kayıp: MakerDaoBot Açığı | BlockSec Haftalık Bülteni

Ethereum'da 2026/10/05-2026/10/11 döneminde 1 güvenlik olayı yaşandı; kayıp yaklaşık 542 bin $. Kötü amaçlı adaptör, erişim kontrolü olmayan MakerDaoBot işleviyle botun MakerDAO bakiyelerinde yetki aldı; 4 eski ETH-A ihalesini kapatıp 200 ETH-A teminatını WETH'ye çevirdi. WETH, 200 ETH olarak saldırgana gönderildi.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit