Glibc, Aurora OS geliştiricileri tarafından hazırlanan memcpy güvenlik açığına yönelik bir düzeltme içerir

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ı. kritik güvenlik açığı (CVE-2020-6096) 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. atanmış 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: Debian и Ubuntu 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 SUSE и katolik kardinal şapkası 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 yama 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ı. Yama 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 gönderilen Glibc posta listesine. Bir hafta sonra
oldu önerilen 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 yasal kayıt yamanın önemi nedeniyle.
8 Temmuz düzeltmeleri kabul edildi yaklaşan glibc 2.32 sürümünün ana bölümüne. Uygulama iki yama içerir – ilk ARMv7 için memcpy'nin çoklu arşiv uygulaması için ve ikinci ARM için memcpy() ve memmove()'un genel montaj dili uygulaması için.

Sorun, Linux çalıştıran milyonlarca ARMv7 cihazını etkiliyor ve uygun güncelleme olmadan cihaz sahipleri, bunları ağa bağlarken risk altında kalıyor (ağdan erişilebilen hizmetler ve giriş verilerini boyut kısıtlamaları olmadan kabul eden uygulamalar saldırıya uğrayabilir). Örneğin, güvenlik açığını tespit eden araştırmacıların hazırladığı istismar, bir araba bilgi sistemi içerisine yerleştirilmiş bir HTTP sunucusuna çok büyük bir GET isteği göndererek nasıl saldırılabileceğini ve sisteme root erişiminin nasıl sağlanacağını gösteriyor.

Kaynak: opennet.ru

Yorum ekle