15 Mart'ta, Poolz Ethereum, Binance Akıllı Zincir ve Polygon ağlarında saldırıya uğradı ve birçok token çalındı, toplam değer yaklaşık 665,000 dolar. Saldırganlar, akıllı sözleşmedeki aritmetik taşma açığını kullanarak büyük miktarda token elde etmeyi başardılar.
Saldırganlar, CreateMassPools fonksiyonunu çağırarak toplu likidite havuzları oluşturuyorlar. Bu fonksiyonda, saldırganların normal likidite kontrollerini atlamalarına olanak tanıyan kritik bir güvenlik açığı bulunmaktadır. Özellikle, saldırganlar getArraySum fonksiyonundaki tam sayı taşma sorununu kullanıyorlar.
Saldırı sırasında, hackerlar önce belirli bir merkeziyetsiz borsa üzerinde az miktarda MNZ tokeni değiştirdiler. Ardından, açıkları olan CreateMassPools fonksiyonunu çağırdılar. Bu fonksiyon, likidite havuzlarını toplu olarak oluşturmak ve başlangıç likiditesi sağlamak için tasarlanmıştı, ancak getArraySum fonksiyonundaki bir hata nedeniyle saldırganlar, gerçek transfer miktarından çok daha fazla sahte likidite enjekte etme imkanı buldular.
getArraySum fonksiyonu, iletilen _StartAmount dizisini toplarken, taşma sorunundan dolayı nihai dönen değer 1'e dönüşüyor. Ancak, CreatePool fonksiyonu yine de orijinal _StartAmount değerini kaydetmek için kullanıyor. Bu durum, saldırganın yalnızca 1 token göndermesiyle sistemde büyük miktarda sahte likidite kaydedebilmesine yol açıyor.
Bu adım tamamlandıktan sonra, saldırgan basitçe withdraw fonksiyonunu çağırarak tokenleri çekti ve böylece tüm saldırı sürecini tamamladı.
Bu olay, akıllı sözleşmelerde aritmetik işlemlerin güvenliğinin önemini bir kez daha vurgulamaktadır. Benzer sorunların önlenmesi için geliştiricilerin, derleme aşamasında otomatik olarak taşma kontrolleri gerçekleştiren daha yeni bir Solidity derleyici versiyonu kullanmayı düşünmeleri önerilmektedir. Eski Solidity versiyonlarını kullanan projeler için, tamsayı taşma sorunlarını ele almak amacıyla OpenZeppelin'in SafeMath kütüphanesinin entegre edilmesi önerilmektedir.
Bu saldırı olayı, blockchain ekosisteminde, görünüşte küçük bir kod açığının bile ciddi ekonomik kayıplara yol açabileceğini hatırlatıyor. Bu nedenle, kullanıcı varlıklarını korumak için kapsamlı kod denetimi ve sürekli güvenlik güncellemeleri son derece önemlidir.
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.
Poolz, aritmetik taşma saldırısına uğradı ve 66.5 bin dolar kaybetti.
Poolz, aritmetik taşma saldırısına uğradı, kayıplar 665.000 dolar.
15 Mart'ta, Poolz Ethereum, Binance Akıllı Zincir ve Polygon ağlarında saldırıya uğradı ve birçok token çalındı, toplam değer yaklaşık 665,000 dolar. Saldırganlar, akıllı sözleşmedeki aritmetik taşma açığını kullanarak büyük miktarda token elde etmeyi başardılar.
Saldırganlar, CreateMassPools fonksiyonunu çağırarak toplu likidite havuzları oluşturuyorlar. Bu fonksiyonda, saldırganların normal likidite kontrollerini atlamalarına olanak tanıyan kritik bir güvenlik açığı bulunmaktadır. Özellikle, saldırganlar getArraySum fonksiyonundaki tam sayı taşma sorununu kullanıyorlar.
Saldırı sırasında, hackerlar önce belirli bir merkeziyetsiz borsa üzerinde az miktarda MNZ tokeni değiştirdiler. Ardından, açıkları olan CreateMassPools fonksiyonunu çağırdılar. Bu fonksiyon, likidite havuzlarını toplu olarak oluşturmak ve başlangıç likiditesi sağlamak için tasarlanmıştı, ancak getArraySum fonksiyonundaki bir hata nedeniyle saldırganlar, gerçek transfer miktarından çok daha fazla sahte likidite enjekte etme imkanı buldular.
getArraySum fonksiyonu, iletilen _StartAmount dizisini toplarken, taşma sorunundan dolayı nihai dönen değer 1'e dönüşüyor. Ancak, CreatePool fonksiyonu yine de orijinal _StartAmount değerini kaydetmek için kullanıyor. Bu durum, saldırganın yalnızca 1 token göndermesiyle sistemde büyük miktarda sahte likidite kaydedebilmesine yol açıyor.
Bu adım tamamlandıktan sonra, saldırgan basitçe withdraw fonksiyonunu çağırarak tokenleri çekti ve böylece tüm saldırı sürecini tamamladı.
Bu olay, akıllı sözleşmelerde aritmetik işlemlerin güvenliğinin önemini bir kez daha vurgulamaktadır. Benzer sorunların önlenmesi için geliştiricilerin, derleme aşamasında otomatik olarak taşma kontrolleri gerçekleştiren daha yeni bir Solidity derleyici versiyonu kullanmayı düşünmeleri önerilmektedir. Eski Solidity versiyonlarını kullanan projeler için, tamsayı taşma sorunlarını ele almak amacıyla OpenZeppelin'in SafeMath kütüphanesinin entegre edilmesi önerilmektedir.
Bu saldırı olayı, blockchain ekosisteminde, görünüşte küçük bir kod açığının bile ciddi ekonomik kayıplara yol açabileceğini hatırlatıyor. Bu nedenle, kullanıcı varlıklarını korumak için kapsamlı kod denetimi ve sürekli güvenlik güncellemeleri son derece önemlidir.