Move dilinin referans güvenlik doğrulamasında yeni bir tam sayı taşma açığı bulundu.

robot
Abstract generation in progress

Move dilinde referans güvenlik mekanizmasında yeni bir tam sayı taşma açığı bulundu

Son zamanlarda, Move dilini derinlemesine araştırırken, yeni bir tamsayı taşma açığı keşfettik. Bu açık, güvenlik doğrulama sürecinde meydana geliyor ve Move dilinin bazı temel mekanizmalarını içeriyor. Bu açığı analiz ederek, Move dilinin tasarımı ve uygulanışı hakkında daha derin bir anlayış kazanabiliriz.

Move dilinin doğrulama süreci

Move dili, byte kodunu çalıştırmadan önce kod birimlerini doğrular, bu süreç 4 adıma ayrılmıştır. Bu keşfedilen güvenlik açığı reference_safety adımında ortaya çıkmıştır.

reference_safety modülü, referans güvenliğini doğrulamak için temel işlevleri tanımlar. Bu, asılı referansların varlığını, değişken referans erişiminin güvenli olup olmadığını, küresel depolama referans erişiminin güvenli olup olmadığını gibi sorunları kontrol eder.

Doğrulama sürecinin giriş fonksiyonu, her bir fonksiyonu analiz etmek için analyze_function'ı çağırır. Analyze_function, fonksiyondaki her bir temel bloğu doğrular. Temel blok, giriş ve çıkış dışında dalga komutları olmayan kod dizisidir.

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

Move dilinde referans güvenliği

Move dili, iki tür referans türünü destekler: değiştirilemez referans (&) ve değiştirilebilir referans (&mut). Değiştirilemez referanslar veri okumak için, değiştirilebilir referanslar ise verileri değiştirmek için kullanılır. Bu tasarım, kodun güvenliğini ve okunabilirliğini artırmaya yardımcı olur.

Referans güvenlik doğrulama modülü, işlevdeki her temel bloğun bayt kodu talimatlarını tarar ve tüm referans işlemlerinin geçerli olup olmadığını belirler. Doğrulama süreci esasen şunları içerir:

  1. Temel blok kodunu çalıştır
  2. Birleştirilmiş yürütme öncesi ve sonrası durum
  3. Blok durumunu güncelle
  4. Son koşulları sonraki bloklara yaymak

Bu süreç, V8 turbofan içindeki Sea of Nodes fikrine benzer.

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

Açık Analizi

Hata, birleştirmenin yürütülmeden önceki ve sonraki durumlarının işlenmesi sırasında ortaya çıkıyor. Fonksiyon parametrelerinin uzunluğu ile yerel değişkenlerin uzunluğu 256'dan büyük olduğunda, yerel değişken indeksini belirtmek için u8 türü kullanıldığından, tam sayı taşması meydana geliyor.

Move dilinin yerel değişken sayısını kontrol eden bir süreci olsa da, bu kontrol parametre uzunluğunu kapsamamaktadır. Geliştiriciler, parametreler ve yerel değişkenlerin toplamının kontrol edilmesi gerektiğini fark etmiş gibi görünüyor, ancak gerçek kodda yalnızca yerel değişkenlerin sayısı kontrol edilmiştir.

Bu tam sayı taşması, hizmet reddi saldırısına (DoS) yol açabilir (. Saldırgan, taşmayı kullanarak blok durumunu değiştirmek için döngüsel bir kod bloğu oluşturabilir. Temel blok tekrar çalıştırıldığında, eğer talimatların erişmeye çalıştığı indeks yeni durumda mevcut değilse, program çökmesine neden olur.

![Numen Cyber'ın özel keşfi move dilinde bir başka yüksek riskli açık])https://img-cdn.gateio.im/webp-social/moments-6952376046c901dfae2b19d5144746b5.webp(

![Numen Cyber'ın özel keşfi: move dilinde bir başka yüksek riskli güvenlik açığı])https://img-cdn.gateio.im/webp-social/moments-92892f2a9dffea9f805f3a1952e82703.webp(

![Numen Cyber'in özel bulgusu move dilinde bir yüksek riskli güvenlik açığı daha])https://img-cdn.gateio.im/webp-social/moments-1347ef8b31983109babdf8ef29270c67.webp(

![Numen Cyber, move dilinde başka bir yüksek riskli güvenlik açığı keşfetti])https://img-cdn.gateio.im/webp-social/moments-ac937ab4f426d30a476feb32520a95b4.webp(

![Numen Cyber özel keşfi move dilinde bir başka yüksek riskli açık])https://img-cdn.gateio.im/webp-social/moments-a18dcf64108d1a75b728ffe8391100f1.webp(

![Numen Cyber, move dilinde bir yüksek riskli açık daha keşfetti])https://img-cdn.gateio.im/webp-social/moments-7c8fe4e4cf376ad49d729a6f80df6f08.webp(

![Numen Cyber, move dilinde bir başka yüksek riskli güvenlik açığını keşfetti])https://img-cdn.gateio.im/webp-social/moments-c598d61833550ec5494f9a5a4ee2a760.webp(

![Numen Cyber'ın özel bulgusu move dilinde bir yüksek riskli güvenlik açığı daha])https://img-cdn.gateio.im/webp-social/moments-12c60c225a5629f6d927982a7585fc5b.webp(

![Numen Cyber'ın özel keşfi move dilinde bir diğer yüksek tehlike açığı])https://img-cdn.gateio.im/webp-social/moments-94b0c97bb9e287ed715cddb5165f129d.webp(

Açık Kullanımı

Bu açığı göstermek için )PoC( adıyla bir konsept kanıtı oluşturduk:

  1. Koşulsuz dalış talimatı içeren bir temel blok oluşturun ve bunu birden fazla kez çalıştırın.
  2. Parametreler ve yerel değişkenlerin toplam sayısını 264 olarak ayarlamak, yeni yerel değişken eşlemesi uzunluğunun 8'e taşmasını sağlıyor.
  3. Temel blok tekrar çalıştırıldığında, var olmayan bir yerel değişken indeksine erişim denemesi panic'e neden olur.

![Numen Cyber özel keşfi move dilinde bir başka yüksek riskli güvenlik açığı])https://img-cdn.gateio.im/webp-social/moments-095e2b585c45a86b0a689214ca673619.webp(

![Numen Cyber özel keşfi move dilinde bir başka yüksek riskli açık])https://img-cdn.gateio.im/webp-social/moments-5ebaa03263f7a87edd78d146c5beadd2.webp(

![Numen Cyber, move dilinde başka bir yüksek riskli güvenlik açığı keşfetti])https://img-cdn.gateio.im/webp-social/moments-fe905356cbee596e8aba08ec14f5d508.webp(

![Numen Cyber özel keşfi move dilinde bir başka yüksek riskli açık])https://img-cdn.gateio.im/webp-social/moments-ae25cc7d31726e2e1477e6d112b7aa75.webp(

Sonuç

Bu açık, kesinlikle güvenli bir kodun olmadığını bir kez daha kanıtladı. Move dilinin yürütülmeden önce statik doğrulama yaptığına rağmen, yine de tam sayı taşma açığı tarafından aşılabilir.

Move dilinin gelecekteki gelişimi için öneriyoruz:

  1. Çalışma sırasında beklenmeyen durumların meydana gelmesini önlemek için daha fazla kontrol kodu ekleyin.
  2. Sadece doğrulama aşamasındaki güvenlik kontrollerine güvenmeyin, aynı zamanda çalıştırma aşamasında güvenlik güçlendirmesi yapmalısınız.

Move dilinin güvenlik araştırmalarında öncü olarak, Move'un güvenlik sorunlarını derinlemesine incelemeye devam edeceğiz ve gelişimine katkıda bulunacağız.

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
  • 3
  • Share
Comment
0/400
SnapshotLaborervip
· 20h ago
Beş dakika ders çalıştıktan sonra hata bildirmeye gitmişsin.
View OriginalReply0
RadioShackKnightvip
· 21h ago
çamur duvara yapışmaz
View OriginalReply0
LayerZeroHerovip
· 21h ago
Bir şey söylemek gerekirse, move da bu kadar işte.
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)