Aurora mobil işletim sisteminin geliştiricileri (Open Mobile Platform şirketi tarafından geliştirilen Sailfish işletim sisteminin bir kolu), ortadan kaldırmaya ilişkin açıklayıcı bir hikaye paylaştı. () yalnızca ARMv7 platformunda görünen Glibc'de. Güvenlik açığıyla ilgili bilgiler mayıs ayında açıklandı ancak son günlere kadar güvenlik açıkları olmasına rağmen düzeltmeler mevcut değildi. yüksek düzeyde tehlike ve memcpy() ve memmove() işlevlerinde belirli bir şekilde biçimlendirilmiş verileri işlerken kod yürütmeyi düzenlemenize olanak tanıyan bir istismarın çalışan bir prototipi vardır. Şunun için paket düzeltmeleri: и Henüz yayınlanmadı ve güvenlik açığı, kamuya açıklandığı andan itibaren neredeyse iki ay ve Glibc geliştiricilerine bildirim yapıldığı andan itibaren beş ay boyunca düzeltilmeden kaldı.
Güvenlik açığı, ARMv7 için montaj dilinde memcpy() ve memmove() uygulamalarında kendini gösterdi ve kopyalanan alanın boyutunu belirleyen parametrenin negatif değerlerinin yanlış işlenmesinden kaynaklandı. Yama geliştirmeyle ilgili sorunlar, şirketlerin и 32 bit ARMv7 sistemleri için derleme yapmadıkları için platformlarının sorundan etkilenmediğini ve düzeltme oluşturulmasına katılmadıklarını duyurdu. Birçok gömülü dağıtımın geliştiricileri Glibc ekibine güvenmiş gibi görünüyor ve ayrıca düzeltmenin hazırlanmasında aktif olarak yer almamışlar.
seçenek Huawei, sorunu engellemek için hemen imzalı işlenenlerle (bge ve blt) çalışan montaj talimatlarını imzasız analoglarla (blo ve bhs) değiştirmeye çalıştığını önerdi. Glibc bakımcıları, çeşitli hata durumlarını kontrol etmek için bir dizi test geliştirdi ve ardından Huawei yamasının uygun olmadığı ve olası tüm giriş verileri kombinasyonlarını işlemediği ortaya çıktı.
Aurora OS, ARM için 32 bit yapıya sahip olduğundan, geliştiricileri bu güvenlik açığını kendi başlarına kapatmaya ve topluluğa bir çözüm sunmaya karar verdi. Buradaki zorluk, fonksiyonun verimli bir montaj dili uygulamasını yazmanın ve giriş argümanları için çeşitli seçenekleri dikkate almanın gerekli olmasıydı. Uygulama imzasız talimatlar kullanılarak yeniden yazıldı. Küçük olduğu ortaya çıktı, ancak asıl sorun, giriş değerlerinin tüm kombinasyonlarıyla uyumluluğu korurken, yürütme hızını korumak ve memcpy ve memmove işlevlerinin performans düşüşünü önlemekti.
Haziran ayının başında, Glibc bakımcılarının test çerçevesini ve Aurora'nın dahili test paketini geçen düzeltmenin iki sürümü hazırlandı. 3 Haziran'da seçeneklerden biri seçildi ve Glibc posta listesine. Bir hafta sonra
oldu Huawei'nin daha önce düzeltmeye çalıştığı çoklu arşiv uygulamasındaki bir sorunu düzelten, yaklaşım açısından benzer başka bir yama. Testler bir ay sürdü ve yamanın önemi nedeniyle.
8 Temmuz düzeltmeleri yaklaşan glibc 2.32 sürümünün ana bölümüne. Uygulama iki yama içerir – ARMv7 için memcpy'nin çoklu arşiv uygulaması için ve ARM için memcpy() ve memmove()'un genel montaj dili uygulaması için.
Bu sorun milyonlarca ARMv7 cihazını etkiliyor. Linux Uygun güncelleme yapılmadığı takdirde, sahipler bunları ağa bağlama riskiyle karşı karşıya kalırlar (boyut kısıtlaması olmaksızın girdi verisi kabul eden ağa erişilebilir hizmetler ve uygulamalar saldırıya uğrayabilir). Örneğin, güvenlik açığını keşfeden araştırmacılar tarafından hazırlanan istismar, çok büyük bir GET isteği göndererek aracın bilgi sistemine entegre edilmiş HTTP sunucusuna nasıl saldırılabileceğini ve sisteme kök erişimi nasıl elde edilebileceğini göstermektedir.
Kaynak: opennet.ru
