Move dili referans güvenlik modülünde tamsayı taşma açığı bulundu. Bu, hizmet reddi saldırısına yol açabilir.

robot
Abstract generation in progress

Move dili referans güvenlik modülü yeni bir tamsayı taşma açığı keşfetti

Son zamanlarda, araştırmacılar Move dilini derinlemesine analiz ederken yeni bir tam sayı taşma açığı keşfettiler. Bu açık, referans güvenliği modülünde bulunmakta olup, ciddi bir hizmet reddi saldırısına yol açabilir. Bu makalede, bu açığın keşif süreci ve teknik detayları ayrıntılı olarak sunulacaktır.

Numen Cyber özel keşfi move dilinde bir başka yüksek riskli açık

Move dilinin referans güvenliği mekanizması

Move dili, Rust'ın fikirlerinden ilham alarak iki tür referans türünü destekler: değiştirilemez referans (&) ve değiştirilebilir referans (&mut). Referans güvenliği modülü, fonksiyonlardaki temel blokları ve bayt kodu talimatlarını tarayarak tüm referans işlemlerinin yasallığını doğrular.

Doğrulama süreci esasen aşağıdaki adımları içerir:

  1. Her bir temel bloğu analiz et
  2. Temel blok kodunu çalıştırarak post state oluştur
  3. pre state ve post state'i birleştir
  4. Blok durumunu güncelle ve sonraki bloklara ilet

Bunlar arasında, state, fonksiyon içinde referansların güvenliğini sağlamak için locals ve borrow graph adlı iki ana bileşeni içerir.

Numen Cyber özel keşfi: move dilinde bir yüksek riskli güvenlik açığı daha

Açık Kayıt Detayları

Bu güvenlik açığı, güvenli modülü referans alan join_ fonksiyonunda ortaya çıkmaktadır. Fonksiyon parametre uzunluğu ve yerel değişken uzunluğunun toplamı 256'dan büyük olduğunda, u8 türünde locals'i yineleme kullanılması nedeniyle tam sayı taşması meydana gelir.

Özellikle:

  • iter_locals() u8 türünde bir iterator döner
  • Parametre uzunluğu + yerel değişken uzunluğu 256'dan büyük olduğunda taşma meydana gelir.
  • Geliştiricilerin bunu kontrol etme ihtiyacının farkında olduğu görünüyor, ancak gerçek kod yalnızca yerel değişken sayısını kontrol ediyor.

Numen Cyber, move dilinde bir yüksek riskli açık daha keşfetti

Açık Kullanımı

Bu açığı kullanarak bir döngü kod bloğu oluşturulabilir:

  1. İlk çalıştırıldığında taşmayı tetikler, locals haritasını değiştirir.
  2. İkinci kez çalıştırıldığında mevcut olmayan locals indeksine erişim, panik yaratır.

Bu, düğüm çökmesine ve hizmet reddi saldırısına neden olacaktır.

Numen Cyber, move dilinde bir başka yüksek riskli güvenlik açığı keşfetti

Açıkların Tekrarı

Araştırmacılar bu açığı yeniden üretmek için bir PoC sağladı:

  1. parameters ve locals'ı SignatureIndex(0) olarak ayarlayın, num_locals'ı 264 yapın.
  2. İlk yürütmeden sonra, yeni locals haritasının uzunluğu 8 oldu.
  3. İkinci yürütme sırasında, copyloc(57) mevcut olmayan bir offset'e erişim sağlamak panic'e neden oldu.

Numen Cyber özel olarak move dilinde bir başka yüksek riskli güvenlik açığı keşfetti

Numen Cyber'ın özel keşfi move dilinde bir yüksek riskli güvenlik açığı daha

Numen Cyber özel keşfi move dilinde bir başka yüksek riskli güvenlik açığı

Numen Cyber özel keşfi move dilinde bir başka yüksek riskli açık

Numen Cyber özel olarak move dilinde başka bir yüksek riskli güvenlik açığı keşfetti

Numen Cyber'ın özel keşfi move dilinde bir başka yüksek riskli güvenlik açığı

Numen Cyber, move dilinde bir başka yüksek riskli güvenlik açığını keşfetti

Numen Cyber, move dilinde başka bir yüksek tehlike açığı keşfetti

Numen Cyber, move dilinde bir başka yüksek riskli açığı keşfetti

Numen Cyber özel keşfi move dilinde bir başka yüksek riskli güvenlik açığı

Özet ve Öneriler

Bu güvenlik açığı şöyle diyor:

  1. Kesinlikle güvenli bir kod yoktur, statik doğrulama atlatılabilir.
  2. Kod denetimi çok önemlidir, geliştiricilerin dikkatsizliklerini bulabilir.
  3. Move dili, yalnızca doğrulama aşamasındaki güvenlik kontrollerine dayanmak yerine, çalışma zamanı kontrollerini artırmalıdır.

Araştırmacılar, Move dilinin tasarımcılarını, benzer güvenlik açıklarının kullanılmasının daha ciddi sorunlara yol açmasını önlemek için çalışma zamanı güvenlik mekanizmalarını güçlendirmeye çağırıyor.

Numen Cyber özel keşfi move dilinde bir yüksek riskli açık daha bulundu

View Original
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.
  • Reward
  • 7
  • Share
Comment
0/400
SmartContractWorkervip
· 3h ago
Yine kaynadı! Onarıma takıldım.
View OriginalReply0
staking_grampsvip
· 07-06 05:24
Move bu açık çok amatörce değil mi?
View OriginalReply0
ChainMaskedRidervip
· 07-06 05:22
Kod yazma yeteneği çok ince değil mi?
View OriginalReply0
MissedTheBoatvip
· 07-06 05:20
Yine bir açık ortaya çıktı, Move da pek iyi değil.
View OriginalReply0
GateUser-c799715cvip
· 07-06 05:19
Kodu kim yazdı, bu kadar kötü mü?
View OriginalReply0
YieldChaservip
· 07-06 05:17
u8 yine sorun çıkardı
View OriginalReply0
BridgeJumpervip
· 07-06 05:09
Geliştirme düzensiz, hata düzeltirken iki damla gözyaşı.
View OriginalReply0
  • Pin
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)