GDM'de bir güvenlik açığı tespit edildi

Bir güvenlik araştırmacısı GitHub tarafından bilinir kıldı son günlerde bir güvenlik açığı tespit ettiniz (CVE-2020-16125), oturum açma ekranını görüntülemekten sorumlu olan GNOME Ekran Yöneticisi'nde (GDM).

Başka bir güvenlik açığıyla birleştiğinde hesap izleme hizmetinde (hesaplar-arka plan programı), sorun, kodun kök olarak çalışmasına izin verir.  Güvenlik açığı, hesap arka plan programı hizmetine DBus aracılığıyla erişilemiyorsa, ilk yapılandırma yardımcı programının yanlış başlatılmasıyla ilişkilidir.

Güvenlik açığı hakkında

Ayrıcalıklı olmayan bir kullanıcı, hesaplar-arka plan programı sürecini çökertebilir ya da kapat koşulları ne yaratacak gnome-initial-setup yardımcı programının GDM'den çalıştırılması için, bu sayede yeni bir kullanıcı sudo grubunun bir üyesi olarak kaydolabilir, yani programları root olarak çalıştırabilir.

Normal olarak, GDM, ilk kullanıcıyı ayarlamak için gnome-initial-setup'ı çağırıyor Sistemde hesap yoksa. Hesapların varlığının doğrulanması, accounts-daemon ile iletişime geçilerek yapılır. Belirtilen işlem başarısız olursa, GDM hesapların eksik olduğunu varsayar ve ilk yapılandırma sürecini başlatır.

Araştırmacı, arka plan programı hesap sürecini bozmanın iki yolunu belirledi- İlk (CVE-2020-16126) yanlış ayrıcalık sıfırlamasından ve bir ".pam_environment" dosyası işlenirken görülen ikinci (CVE-2020-16127) hatadan kaynaklanıyor.

Buna ek olarak, daemon hesaplarında başka bir güvenlik açığı bulundu (CVE-2018-14036) yanlış dosya yolu kontrollerinden ve rastgele dosyaların içeriğinin sistemde okunmasına izin verilmesinden kaynaklanır.

Hesaplar-arka plan programındaki güvenlik açıkları, Ubuntu geliştiricileri tarafından yapılan değişikliklerden kaynaklanır ve FreeDesktop projesinin ana hesap arka plan programı kodunda ve Debian paketinde görünmez.

CVE-2020-16127 sorunu, kullanıcının ana dizininden .pam_environment dosyasının içeriğini okuyan is_in_pam_environment işlevini uygulayan Ubuntu'da eklenen bir yamada mevcuttur. Bu dosya yerine / dev / zero'ya sembolik bir bağlantı koyarsanız, hesap arka plan programı süreci sonsuz okuma işlemlerinde asılı kalır ve DBus aracılığıyla isteklere yanıt vermeyi durdurur.

Modern bir işletim sistemindeki bir güvenlik açığından yararlanmanın bu kadar kolay olması alışılmadık bir durumdur. Bazı durumlarda, bir güvenlik açığından yararlanmak için binlerce satır kod yazdım. 

Çoğu modern istismar, yığıntaki sahte nesneleri taklit etmek için bir bellek bozulması güvenlik açığını kullanmak veya bir TOCTOU güvenlik açığından yararlanmak için bir dosyayı mikrosaniye hassasiyetine sembolik bağla değiştirmek gibi karmaşık hileler içerir. 

Bu nedenle, bu günlerde yararlanılması için kodlama becerisi gerektirmeyen bir güvenlik açığı bulmak nispeten nadirdir. Ubuntu'nun nasıl çalıştığına dair önceden bir bilginiz veya güvenlik araştırmasında deneyiminiz olmasa bile, güvenlik açığının anlaşılmasının kolay olduğunu düşünüyorum.

CVE-2020-16126 güvenlik açığı başka bir yamadan kaynaklanıyor Bu, bazı DBus çağrılarını işlerken geçerli kullanıcının ayrıcalıklarını sıfırlar (örneğin, org.freedesktop.Accounts.User.SetLanguage).

Hesap arka plan programı süreci normal olarak root olarak çalışır ve bu da normal bir kullanıcının sinyal göndermesini engeller.

Ancak eklenen yama sayesinde işlem ayrıcalıkları sıfırlanabilir ve kullanıcı bir sinyal göndererek bu işlemi sonlandırabilir. Bir saldırı gerçekleştirmek için, ayrıcalıkları (RUID) kaldırmak için koşulları oluşturun ve hesap arka plan programı sürecine bir SIGSEGV veya SIGSTOP sinyali gönderin.

Kullanıcı grafik oturumu bitirir ve metin konsoluna gider (Ctrl-Alt-F1).
Grafik oturumu sona erdikten sonra, GDM giriş ekranını görüntülemeye çalışır, ancak hesaplar-daemon'dan bir yanıt almaya çalışırken takılır.

SIGSEGV ve SIGCONT sinyalleri konsoldan hesap arka plan programı sürecine gönderilir ve askıda kalmasına neden olur.

Grafik oturumdan çıkmadan önce de sinyaller gönderebilirsiniz, ancak oturumu bitirmek için zamanınız olması için gecikmeli yapmanız gerekir ve sinyal gönderilmeden önce GDM'nin başlama zamanı vardır.

GDM'deki hesap arka plan programına yapılan istek başarısız olur ve GDM, arayüzünde yeni bir hesap oluşturmak için yeterli olan gnome-initial-setup yardımcı programını çağırır.

Güvenlik açığı, GNOME 3.36.2 ve 3.38.2'de düzeltilmiştir. Güvenlik açığının istismar edildiği Ubuntu ve türevlerinde doğrulandı.

kaynak: https://securitylab.github.com


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.