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

robot
Abstract generation in progress

Move dilinde güvenlik modülünde yeni bir tam sayı taşma açığı bulundu

Son zamanlarda, Move dilini derinlemesine incelerken yeni bir tamsayı taşma açığı keşfedildi. Bu açık, referans güvenliği doğrulama modülünde bulunmaktadır ve tetikleme süreci oldukça ilginçtir. Bu makalede, bu açığı derinlemesine analiz edeceğiz ve ilgili Move dili arka plan bilgilerini tanıtacağız.

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

Move dilinde byte kodu çalıştırılmadan önce kod birimleri doğrulanır, bu doğrulama süreci 4 adıma ayrılır. Bu keşfedilen güvenlik açığı reference_safety adımında ortaya çıkmıştır.

Referans güvenlik doğrulama modülü, boş referansların varlığını kontrol etmek, değişken referans erişiminin güvenli olup olmadığını ve küresel depolama referans erişiminin güvenli olup olmadığını kontrol etmekten sorumludur. Doğrulama süreci analyze_function fonksiyonundan başlar ve her temel blok için doğrulama yapılır.

Move dilinde, temel blok, giriş ve çıkış dışında dalga talimatı içermeyen kod dizisidir. Sistem, temel bloku belirlemek için bayt kodunu tarayarak tüm dalga talimatlarını ve döngü talimat dizilerini arar.

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

Move dilinde iki tür referans türü desteklenmektedir: değişmez referans (&) ve değiştirilebilir referans (&mut). Referans güvenliği modülü, bir fonksiyondaki her temel bloğun bytecode talimatlarını tarar ve tüm referans işlemlerinin geçerliliğini kontrol eder. Doğrulama süreci, fonksiyon içindeki referansların güvenliğini sağlamak için borrow graph ve locals adlı iki bileşeni içeren AbstractState yapısını kullanır.

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

Doğrulama sürecinde, sistem temel blok kodunu oluşturacak post state'i üretecek ve ardından pre state ile post state'i birleştirerek blok durumunu güncelleyecektir. Eğer durum değişirse ve bir döngü varsa, bu temel blok tekrar çalıştırılacaktır, ta ki post state pre state'e eşit olana veya bir hata oluşana kadar.

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

Hata, join_ fonksiyonunda meydana geliyor. Parametre uzunluğu ile yerel değişken uzunluğu 256'yı geçtiğinde, u8 türü ile locals'ı yinelemek, tam sayı taşmasına neden oluyor. Move dilinin locals sayısını kontrol eden bir süreci olsa da, yalnızca yerel değişken sayısını kontrol ediyor, parametre uzunluğunu kapsamıyor.

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

Bu tam sayı taşması, hizmet reddi saldırısına yol açabilir. Saldırgan, taşmayı kullanarak bloğun durumunu değiştiren bir döngü kod bloğu oluşturabilir. execute_block fonksiyonu tekrar çalıştırıldığında, eğer talimatın erişmesi gereken indeks yeni AbstractState locals haritasında yoksa, sistem çökmesine neden olur.

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

Bu açığı göstermek için, koşulsuz dalgıç talimatları içeren bir temel blok oluşturabiliriz. Uygun parametreler ve yerel değişken sayısını ayarlayarak, locals haritasının uzunluğunu 8'e taşmasını sağlayabiliriz. İkinci yürütmede, mevcut olmayan bir offset'e erişim denemesi panic ile sonuçlanacaktır.

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

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

Numen Cyber özel keşfi move dilinde bir yüksek tehlike açığı daha

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

Numen Cyber özel keşfi move dilinde bir yüksek tehlike açığı daha

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

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

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

Bu açık, özenle tasarlanmış dillerin bile güvenlik riskleri barındırabileceğini hatırlatıyor. Move dili için, beklenmedik durumların önüne geçmek amacıyla çalışma zamanında daha fazla kontrol kodu eklenmesi önerilmektedir. Şu anda Move, güvenlik kontrollerini çoğunlukla doğrulama aşamasında gerçekleştiriyor, ancak doğrulama atlatıldığında daha ciddi sorunlara yol açabilir.

Move dili güvenliği araştırmalarında öncülerden biri olarak, ilgili güvenlik sorunlarını derinlemesine keşfetmeye devam edeceğiz ve Move ekosisteminin sağlıklı gelişimine katkıda bulunacağız.

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

MOVE-1.31%
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
  • 6
  • Share
Comment
0/400
TokenUnlockervip
· 13h ago
Yine tam sayı taşması mı?
View OriginalReply0
BearMarketGardenervip
· 20h ago
move yine bir sorun çıkardı
View OriginalReply0
RunWithRugsvip
· 08-02 18:07
Yine bir güvenlik açığı mı çıktı?
View OriginalReply0
TestnetFreeloadervip
· 08-02 18:07
Yine bir saldırı yüzeyi var, harika!
View OriginalReply0
JustAnotherWalletvip
· 08-02 18:02
Yine bir şey oldu, inceleme sorumlu.
View OriginalReply0
LiquidityNinjavip
· 08-02 18:01
Yine de onarım yapmam gerekiyor, hehe
View OriginalReply0
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)