Linux çekirdeğinin VFS'sinde ayrıcalıklarınızı yükseltmenize izin veren bir güvenlik açığı

Linux çekirdeği tarafından sağlanan Dosya Sistemi Bağlamı API'sinde, yerel bir kullanıcının sistemde kök ayrıcalıkları kazanmasına olanak tanıyan bir güvenlik açığı (CVE-2022-0185) belirlendi. Sorunu tespit eden araştırmacı, varsayılan yapılandırmada Ubuntu 20.04'te root olarak kod çalıştırmanıza olanak tanıyan bir istismarın gösterimini yayınladı. Dağıtımların güvenlik açığını gideren bir güncelleme yayınlamasından sonra bir hafta içinde yararlanma kodunun GitHub'da yayınlanması planlanıyor.

Güvenlik açığı, VFS'deki Legacy_parse_param() işlevinde bulunmaktadır ve Dosya Sistemi Bağlam API'sini desteklemeyen dosya sistemlerinde sağlanan parametrelerin maksimum boyutunun düzgün şekilde kontrol edilmemesinden kaynaklanmaktadır. Çok büyük bir parametrenin iletilmesi, yazılacak verinin boyutunu hesaplamak için kullanılan tamsayı değişkeninin taşmasına neden olabilir - kodun "if (len > PAGE_SIZE - 2 - size)" arabellek taşması kontrolü vardır; boyut değeri 4094'ten büyükse çalışır. alt sınırdan tamsayı taşması için (tamsayı taşması, 4096 - 2 - 4095'i imzasız int'ye dönüştürürken sonuç 2147483648 olur).

Bu hata, özel olarak tasarlanmış bir dosya sistemi görüntüsüne erişildiğinde, arabellek taşmasına neden olur ve ayrılan bellek alanını izleyen çekirdek verilerinin üzerine yazılır. Bu güvenlik açığından yararlanmak için CAP_SYS_ADMIN haklarına sahip olmanız gerekir; yönetici yetkileri. Sorun, sistemde kullanıcı ad alanları desteğinin etkinleştirilmiş olması durumunda, ayrıcalığı olmayan bir kullanıcının bu tür izinleri yalıtılmış bir kapta alabilmesidir. Örneğin, kullanıcı ad alanları Ubuntu ve Fedora'da varsayılan olarak etkindir ancak Debian ve RHEL'de etkin değildir (konteyner izolasyon platformları kullanılmadığı sürece).

Sorun Linux çekirdeği 5.1'den beri ortaya çıkıyor ve dünkü 5.16.2, 5.15.16, 5.10.93, 5.4.173 güncellemelerinde düzeltildi. Güvenlik açığını gideren paket güncellemeleri RHEL, Debian, Fedora ve Ubuntu için zaten yayımlandı. Düzeltme henüz Arch Linux, Gentoo, SUSE ve openSUSE'de mevcut değil. Kapsayıcı yalıtımı kullanmayan sistemler için geçici bir güvenlik çözümü olarak sysctl "user.max_user_namespaces" değerini 0 olarak ayarlayabilirsiniz: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Kaynak: opennet.ru

Yorum ekle