Move dilinde yeni bir tam sayı taşma açığı keşfedildi
Son zamanlarda, Move dilinde yeni bir tam sayı taşma açığı keşfedildi. Bu açık, kod doğrulama aşamasındaki referans güvenlik kontrolü sırasında mevcuttur ve hizmet reddi saldırısına yol açabilir.
Move dili, byte kodunu yürütmeden önce kod doğrulaması yapar ve bu dört aşamaya ayrılır. Bu açık, referans güvenliği (reference_safety) aşamasında meydana geldi. Referans güvenliği kontrolü, kodda boş referansların olup olmadığı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ı ana hatlarıyla doğrulamaktadır.
Doğrulama sürecinde, her temel blok analiz edilecektir. Temel blok, giriş ve çıkış dışında dal yönergeleri olmayan bir kod dizisini ifade eder. Move, bytecode'u tarayarak dal ve döngü yönergelerini bularak temel blokları tanımlar.
Referans güvenlik kontrol modülü, fonksiyondaki temel blokların bytecode talimatlarını tarayarak referans işleminin yasal olup olmadığını belirler. Ana süreç şunları içerir: temel blok kodunu yürütmek, yürütme sonrası durumu oluşturmak, yürütme öncesi ve sonrası durumu birleştirip güncellemek ve sonraki bloklara yaymaktır.
Hata, birleştirme durumu sürecinde ortaya çıkmaktadır. Fonksiyon parametrelerinin sayısı ile yerel değişkenlerin sayısının toplamı 256'yı aştığında, u8 tipi kullanılarak depolandığı için tam sayı taşması meydana gelir. Bu, sonraki yürütmelerde var olmayan yerel değişkenlere erişilmesine neden olarak paniğe yol açar.
Saldırgan, bu taşmayı kullanarak blok durumunu değiştiren döngüsel bir temel blok oluşturabilir. Yeniden çalıştırıldığında, var olmayan yerel değişken indeksine erişmek hizmet reddine yol açacaktır.
Bu açık, sıkı bir şekilde tasarlanmış Move dilinin bile atlatılabilecek güvenlik açıkları barındırabileceğini göstermektedir. Move dili tasarımcılarının, benzer beklenmedik durumların meydana gelmesini önlemek için çalışma zamanında daha fazla kontrol eklemeleri önerilmektedir. Gelecekte Move dilinin güvenliğine yönelik araştırmaların daha da güçlendirilmesi gerekmektedir.
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.
Move dili referans güvenlik kontrolü, hizmet reddi saldırısına neden olabilecek tam sayı taşması açığı içeriyor.
Move dilinde yeni bir tam sayı taşma açığı keşfedildi
Son zamanlarda, Move dilinde yeni bir tam sayı taşma açığı keşfedildi. Bu açık, kod doğrulama aşamasındaki referans güvenlik kontrolü sırasında mevcuttur ve hizmet reddi saldırısına yol açabilir.
Move dili, byte kodunu yürütmeden önce kod doğrulaması yapar ve bu dört aşamaya ayrılır. Bu açık, referans güvenliği (reference_safety) aşamasında meydana geldi. Referans güvenliği kontrolü, kodda boş referansların olup olmadığı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ı ana hatlarıyla doğrulamaktadır.
Doğrulama sürecinde, her temel blok analiz edilecektir. Temel blok, giriş ve çıkış dışında dal yönergeleri olmayan bir kod dizisini ifade eder. Move, bytecode'u tarayarak dal ve döngü yönergelerini bularak temel blokları tanımlar.
Referans güvenlik kontrol modülü, fonksiyondaki temel blokların bytecode talimatlarını tarayarak referans işleminin yasal olup olmadığını belirler. Ana süreç şunları içerir: temel blok kodunu yürütmek, yürütme sonrası durumu oluşturmak, yürütme öncesi ve sonrası durumu birleştirip güncellemek ve sonraki bloklara yaymaktır.
Hata, birleştirme durumu sürecinde ortaya çıkmaktadır. Fonksiyon parametrelerinin sayısı ile yerel değişkenlerin sayısının toplamı 256'yı aştığında, u8 tipi kullanılarak depolandığı için tam sayı taşması meydana gelir. Bu, sonraki yürütmelerde var olmayan yerel değişkenlere erişilmesine neden olarak paniğe yol açar.
Saldırgan, bu taşmayı kullanarak blok durumunu değiştiren döngüsel bir temel blok oluşturabilir. Yeniden çalıştırıldığında, var olmayan yerel değişken indeksine erişmek hizmet reddine yol açacaktır.
Bu açık, sıkı bir şekilde tasarlanmış Move dilinin bile atlatılabilecek güvenlik açıkları barındırabileceğini göstermektedir. Move dili tasarımcılarının, benzer beklenmedik durumların meydana gelmesini önlemek için çalışma zamanında daha fazla kontrol eklemeleri önerilmektedir. Gelecekte Move dilinin güvenliğine yönelik araştırmaların daha da güçlendirilmesi gerekmektedir.