Move dilinde referans güvenlik modülü tam sayı taşma açığı analizi
Bu makale, Move dilindeki yeni keşfedilen bir tamsayı taşma açığını derinlemesine analiz edecektir. Bu açık, referans güvenliği doğrulama modülünde bulunmaktadır ve düğümlerin çökmesine neden olabilir. Bu makalenin açıklamaları sayesinde okuyucular, Move diline daha derin bir anlayış kazanacaklardır.
Açık Arka Plan
Move dili, byte kodunu çalıştırmadan önce kod doğrulaması yapar ve bu 4 adıma ayrılır. Bu güvenlik açığı, güvenlik (reference_safety) doğrulama adımında ortaya çıkmaktadır.
Güvenlik doğrulamanın ana süreci şudur:
Temel kod bloklarını tanımlama
Her temel bloğu analiz et
Birleştirme Öncesi ve Sonrası Durum
Yayılma durumu sonraki bloklara
Burada anahtar, referans güvenliğini sağlamak için locals ve borrow grafiğini içeren AbstractState yapısının korunmasıdır.
Açık Detayları
Açık, join_ fonksiyonundadır. Fonksiyonun parametre uzunluğu ile yerel değişken uzunluğu 256'dan büyük olduğunda, u8 türü ile yineleme yapıldığı için tam sayı taşması meydana gelir.
Açıkça söylemek gerekirse:
iter_locals() u8 türünde bir yineleyici döndürür
Parametre uzunluğu + yerel değişken uzunluğu 256'dan büyük olduğunda taşma meydana gelir
Geliştiriciler yalnızca yerel değişken sayısını kontrol etti, parametre uzunluğunu göz ardı ettiler.
Açık Kullanımı
Bir döngüsel temel blok oluşturulabilir, taşmayı kullanarak durumu değiştirmek için:
Parametreleri ve yerel değişkenlerin toplam uzunluğu 256'dan fazla
İlk çalıştırmadan sonra, yeni locals uzunluğu taşması küçülür.
Yeniden çalıştırıldığında, mevcut olmayan locals indeksine erişim panic'e yol açar.
PoC gösterimi
Tekrar üretilebilir PoC kodu sağlandı ve bu, sonsuz bir döngü içeren temel bir blok içeriyor. Uygun parametreler ve yerel değişken uzunlukları ayarlanarak DoS tetiklenebilir.
Sonuç
Bu açık bir kez daha şunu gösteriyor:
Kesinlikle güvenli bir kod yoktur.
Kod denetiminin önemi
Move dilinin çalıştırma zamanı daha fazla güvenlik kontrolü gerektirir.
Statik doğrulama atlatılabilir, çalışma zamanı güvenliği de aynı derecede önemlidir.
Move dilinin güvenlik araştırmalarında lider olarak, ilgili güvenlik sorunlarını derinlemesine araştırmaya devam edeceğiz ve toplulukla araştırma sonuçlarımızı paylaşacağız.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
21 Likes
Reward
21
8
Share
Comment
0/400
WhaleMinion
· 07-26 05:03
u8 taşma saldırıları geldi
View OriginalReply0
MevTears
· 07-24 04:19
Bu kodu kim yazdı, on kez kontrol etmeden olmaz.
View OriginalReply0
GasFeeCryer
· 07-23 13:34
Açıklar oynanabilir, ayrıca DoS var, harika!
View OriginalReply0
TopEscapeArtist
· 07-23 05:47
Hata yapmak Ayı Piyasası'nın günlük rutini, taş taşırken daha dikkatli olmalısın.
View OriginalReply0
TokenomicsTherapist
· 07-23 05:45
Bu hata çok korkunç değil mi?
View OriginalReply0
TxFailed
· 07-23 05:43
lmao klasik tam sayı taşması... bunları pahalı bir şekilde öğrendim aslında
View OriginalReply0
SchrödingersNode
· 07-23 05:40
Beni çok rahatsız etti, neden bu kadar çok sorunum var?
View OriginalReply0
AltcoinMarathoner
· 07-23 05:40
tam sayılar taşma fırtınasından tutun... web3 ultra'da sadece bir başka kilometre taşı
Move dilinin güvenlik modülündeki tamsayı taşma açığı derinlik analizi
Move dilinde referans güvenlik modülü tam sayı taşma açığı analizi
Bu makale, Move dilindeki yeni keşfedilen bir tamsayı taşma açığını derinlemesine analiz edecektir. Bu açık, referans güvenliği doğrulama modülünde bulunmaktadır ve düğümlerin çökmesine neden olabilir. Bu makalenin açıklamaları sayesinde okuyucular, Move diline daha derin bir anlayış kazanacaklardır.
Açık Arka Plan
Move dili, byte kodunu çalıştırmadan önce kod doğrulaması yapar ve bu 4 adıma ayrılır. Bu güvenlik açığı, güvenlik (reference_safety) doğrulama adımında ortaya çıkmaktadır.
Güvenlik doğrulamanın ana süreci şudur:
Burada anahtar, referans güvenliğini sağlamak için locals ve borrow grafiğini içeren AbstractState yapısının korunmasıdır.
Açık Detayları
Açık, join_ fonksiyonundadır. Fonksiyonun parametre uzunluğu ile yerel değişken uzunluğu 256'dan büyük olduğunda, u8 türü ile yineleme yapıldığı için tam sayı taşması meydana gelir.
Açıkça söylemek gerekirse:
Açık Kullanımı
Bir döngüsel temel blok oluşturulabilir, taşmayı kullanarak durumu değiştirmek için:
PoC gösterimi
Tekrar üretilebilir PoC kodu sağlandı ve bu, sonsuz bir döngü içeren temel bir blok içeriyor. Uygun parametreler ve yerel değişken uzunlukları ayarlanarak DoS tetiklenebilir.
Sonuç
Bu açık bir kez daha şunu gösteriyor:
Move dilinin güvenlik araştırmalarında lider olarak, ilgili güvenlik sorunlarını derinlemesine araştırmaya devam edeceğiz ve toplulukla araştırma sonuçlarımızı paylaşacağız.