Move dili referans güvenlik modülünde tam sayı taşma açığı var
Son günlerde, güvenlik araştırmacıları Move dilinin referans güvenliği modülünde yeni bir tamsayı taşma açığı keşfettiler. Bu açık, kod doğrulama sürecinin reference_safety adımında ortaya çıkmakta ve hizmet reddi saldırısına yol açabilmektedir.
Move dili, byte kodunu yürütmeden önce kod doğrulaması yapar ve bu 4 aşamaya ayrılır. reference_safety, bu aşamalardan biri olan önemli bir adımdır ve referans güvenliğini doğrulamak için kullanılır; bu, askıda referansların varlığını kontrol etmeyi ve değişken referans erişiminin güvenli olup olmadığını kontrol etmeyi içerir.
Bu açık, güvenlik doğrulama sürecinde yerel değişken sayısının işlenmesinden kaynaklanmaktadır. join_ fonksiyonunda, eğer fonksiyon parametre sayısı ile yerel değişken sayısının toplamı 256'yı aşarsa, u8 tipi taşmasına neden olur. Move dilinin locals sayısını kontrol eden bir süreci olmasına rağmen, yalnızca yerel değişken sayısını kontrol etmektedir, parametre sayısını içermemektedir.
Saldırganlar, bu taşma açığını kullanarak kod bloklarının durumunu değiştirmek için özel Move kodları oluşturabilir. Temel blok tekrar yürütüldüğünde, eğer talimatlarda erişilmesi gereken indeks yeni yerel değişken haritasında yoksa, panic oluşur ve bu da düğümün çökmesine neden olur.
Güvenlik araştırmacıları, çok sayıda parametre ve yerel değişken ayarlayarak, tam sayı taşmasına neden olan ve nihayetinde panic'e yol açan bir kavramsal kanıt (PoC) kodu sundular.
Bu açık, iyi tasarlanmış bir dilin bile güvenlik riskleri taşıyabileceğini bir kez daha gösteriyor. Move dili için, yalnızca doğrulama aşamasındaki kontrollerle yetinmeyip, çalışma zamanında daha fazla güvenlik kontrolü eklenmesi önerilir. Aynı zamanda, kod denetiminin önemini de yansıtır; bu, geliştiricilerin dikkatsizliklerini zamanında tespit etmeyi sağlar.
Move dilinin güvenliği üzerine yapılan araştırmalarda öncü olan güvenlik ekibi, Move'nin güvenlik sorunlarını derinlemesine incelemeye devam edeceklerini belirtti. Ayrıca, Move dilinde başka bir açığa daha rastladılar ve ayrıntıları daha sonra açıklayacaklar.
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.
13 Likes
Reward
13
4
Share
Comment
0/400
SoliditySlayer
· 07-11 20:03
Hatalar her gün var, önemli bir şey yok.
View OriginalReply0
BlockchainGriller
· 07-11 20:02
Yine hatalarla karşılaştık, Move'un şarkısı giderek daha da kafa karıştırıcı hale geliyor~
Move dili referans güvenlik modülü tam sayı taşma açığına sahip; bu, düğüm çökmesine neden olabilir.
Move dili referans güvenlik modülünde tam sayı taşma açığı var
Son günlerde, güvenlik araştırmacıları Move dilinin referans güvenliği modülünde yeni bir tamsayı taşma açığı keşfettiler. Bu açık, kod doğrulama sürecinin reference_safety adımında ortaya çıkmakta ve hizmet reddi saldırısına yol açabilmektedir.
Move dili, byte kodunu yürütmeden önce kod doğrulaması yapar ve bu 4 aşamaya ayrılır. reference_safety, bu aşamalardan biri olan önemli bir adımdır ve referans güvenliğini doğrulamak için kullanılır; bu, askıda referansların varlığını kontrol etmeyi ve değişken referans erişiminin güvenli olup olmadığını kontrol etmeyi içerir.
Bu açık, güvenlik doğrulama sürecinde yerel değişken sayısının işlenmesinden kaynaklanmaktadır. join_ fonksiyonunda, eğer fonksiyon parametre sayısı ile yerel değişken sayısının toplamı 256'yı aşarsa, u8 tipi taşmasına neden olur. Move dilinin locals sayısını kontrol eden bir süreci olmasına rağmen, yalnızca yerel değişken sayısını kontrol etmektedir, parametre sayısını içermemektedir.
Saldırganlar, bu taşma açığını kullanarak kod bloklarının durumunu değiştirmek için özel Move kodları oluşturabilir. Temel blok tekrar yürütüldüğünde, eğer talimatlarda erişilmesi gereken indeks yeni yerel değişken haritasında yoksa, panic oluşur ve bu da düğümün çökmesine neden olur.
Güvenlik araştırmacıları, çok sayıda parametre ve yerel değişken ayarlayarak, tam sayı taşmasına neden olan ve nihayetinde panic'e yol açan bir kavramsal kanıt (PoC) kodu sundular.
Bu açık, iyi tasarlanmış bir dilin bile güvenlik riskleri taşıyabileceğini bir kez daha gösteriyor. Move dili için, yalnızca doğrulama aşamasındaki kontrollerle yetinmeyip, çalışma zamanında daha fazla güvenlik kontrolü eklenmesi önerilir. Aynı zamanda, kod denetiminin önemini de yansıtır; bu, geliştiricilerin dikkatsizliklerini zamanında tespit etmeyi sağlar.
Move dilinin güvenliği üzerine yapılan araştırmalarda öncü olan güvenlik ekibi, Move'nin güvenlik sorunlarını derinlemesine incelemeye devam edeceklerini belirtti. Ayrıca, Move dilinde başka bir açığa daha rastladılar ve ayrıntıları daha sonra açıklayacaklar.