Kayan Noktalı Sayıların Çözümlenmesinde Bellek Taşması (CVE-2013-4164)

Ruby’de kayan noktalı sayıların çözümlemesinde bir taşma tespit edilmiştir. Bu açık CVE-2013-4164 numaralı CVE tanımlayıcısına atanmıştır.

Ayrıntılar

Bir string’in float değere dönüştürülmesi sonucu ortaya çıkan string bellek taşmasına neden olabilmektedir. Bu açık, segmentasyon aksaması ve olası rasgele kod çalıştırılması vasıtasıyla DOS ataklarının gerçekleştirilmesine yol açabilir. Belirsiz bir kaynaktan gelen girdiyi kayan noktalı sayı değerine dönüştüren (özellikle JSON kullanıldığında) herhangi bir program bu açığa karşı savunmasızdır.

Savunmasız bir kod şuna benzer görünmektedir:

untrusted_data.to_f

Ayrıca harici verilerden kayan noktalı sayı üreten, şunun gibi herhangi bir kod da savunmasızdır:

JSON.parse untrusted_data

Bu hatanın CVE-2009-0689’a benzer olduğuna dikkat ediniz.

Bu hatadan etkilenmiş olan herhangi bir sürümü çalıştıran tüm kullanıcılar, sistemlerini DÜZELTİLMİŞ bir sürüme güncellemelidirler.

Etkilenen Sürümler

  • Ruby 1.8.6 230. yama seviyesinden sonraki tüm Ruby 1.8 sürümleri
  • Ruby 1.9.3 484. yama seviyesinden önceki tüm Ruby 1.9 sürümleri
  • Ruby 2.0.0 353. yama seviyesinden önceki tüm Ruby 2.0 sürümleri
  • Ruby 2.1.0 preview2’den önceki tüm Ruby 2.1 sürümleri
  • Trunk revizyonu 43780’den öncesi

Çözümler

Tüm kullanıcıların sistemlerini Ruby 1.9.3 484. yama seviyesine, Ruby 2.0.0 353. yama seviyesine veya Ruby 2.1.0 preview2 sürümüne güncellemeleri önerilir.

Lütfen, Ruby 1.8 serisi ve öncesindeki tüm sürümlerin artık desteklenmediğini göz önünde bulundurunuz. Bunlar için yeni düzeltilmiş sürümlerin yayınlanmasına ilişkin bir plan bulunmamaktadır. Desteklenmeyen sürümler için kullanılabilir güvenlik iyileştirmeleri sunmayı garanti etmediğimizden dolayı, söz konusu sürümlerin kullanıcılarına mümkün olan en kısa sürede güncelleme yapmaları önerilir.

Teşekkür

Bu sorunu rapor ettiği için Charlie Somerville’e teşekkürler!

Geçmiş

  • İlk yayınlanma tarihi: 2013-11-22 04:00:00 UTC
  • İkinci yayınlanma tarihi: 2013-11-22 06:46:00 UTC
  • Üçüncü yayınlanma tarihi: 2013-11-22 22:46:00 UTC
  • Dördüncü yayınlanma tarihi: 2013-12-10 12:09:38 UTC