Linux Mint ve Elementary OS'yi etkileyen sudo root güvenlik açığı

Yardımcı programda sudodiğer kullanıcılar adına komutların yürütülmesini organize etmek için kullanılır, tanımlanmış güvenlik açığı (CVE-2019-18634), sistemdeki ayrıcalıklarınızı kök kullanıcıya kadar artırmanıza olanak tanır. Sorun yalnızca Sudo 1.7.1'in piyasaya sürülmesinden bu yana, /etc/sudoers dosyasında varsayılan olarak devre dışı bırakılan ancak Linux Mint ve Elementary OS gibi bazı dağıtımlarda etkin olan "pwfeedback" seçeneği kullanıldığında ortaya çıkıyor. Sürümde sorun düzeltildi sudo 1.8.31, birkaç saat önce yayınlandı. Güvenlik açığı dağıtım kitlerinde düzeltilmeden kalıyor.

“pwfeedback” seçeneği, şifre girerken girilen her karakterden sonra “*” karakterinin görüntülenmesini sağlar. yüzünden Hatalar Tgetpass.c dosyasında tanımlanan getln() işlevinin uygulanmasında, belirli koşullar altında standart giriş akışı (stdin) aracılığıyla iletilen çok büyük bir parola dizesi, tahsis edilen ara belleğe sığmayabilir ve yığındaki diğer verilerin üzerine yazılmayabilir. Sudo kodu root olarak çalıştırıldığında taşma meydana gelir.

Sorunun özü, giriş sırasında ^U (satır temizleme) özel karakterini kullanırken ve yazma işlemi başarısız olursa, çıkış "*" karakterlerini temizlemekten sorumlu kodun mevcut arabellek boyutundaki verileri sıfırlamasıdır, ancak işaretçiyi arabellekteki başlangıç ​​değeri geçerli konumuna döndürür. Kötüye kullanıma katkıda bulunan bir diğer faktör, veriler terminalden değil de giriş akışı yoluyla geldiğinde "pwfeedback" modunun otomatik olarak devre dışı bırakılmamasıdır (bu kusur, örneğin, tek yönlü isimsiz kanallar okuma kanalının sonuna yazmaya çalışırken bir hata oluşur).

Saldırganın yığındaki verilerin üzerine yazılması üzerinde tam kontrolü olduğundan, ayrıcalıklarını root'a yükseltmesine olanak tanıyan bir istismar oluşturmak zor değildir. Sorun, sudo izinlerine veya sudoer'lardaki kullanıcıya özel ayarlara bakılmaksızın herhangi bir kullanıcı tarafından kullanılabilir. Sorunu engellemek için /etc/sudoers dosyasında “pwfeedback” ayarının olmadığından emin olmalı ve gerekirse devre dışı bırakmalısınız (“Varsayılanlar !pwfeedback”). Bir sorun olup olmadığını kontrol etmek için kodu çalıştırabilirsiniz:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S kimliği
Şifre: Segmentasyon hatası

Kaynak: opennet.ru

Yorum ekle