CVE-2022-50280
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: pnode: kaynak eşlerinde sonlandır propagate_mnt() fonksiyonu, bağlama noktaları oluşturulurken bağlama yayılımını yönetir ve kaynak bağlama ağacını (@source_mnt), @dest_mnt tarafından yönetilen hedef yayılım bağlama ağacının tüm ilgili düğümlerine yayar. Maalesef fonksiyon; hedef yayılım ağacındaki kölelerin üzerine bağlanan kaynak bağlama ağacı kopyaları için efendi olan kaynak bağlama kopyalarını ararken, @source_mnt eşlerinde sonlandırmayı başaramadığı bir hata içermektedir ve bu durum bir NULL dereference hatasına yol açmaktadır. Hatanın mekanizması anlaşıldığında tetiklenmesi kolaydır. Yetkisiz kullanıcı ad alanları (unprivileged user namespaces) nedeniyle, bu açık yetkisiz kullanıcılar tarafından kullanılabilir durumdadır. Bu hata düzeltilirken, belirsiz terminoloji veya eksik kavramlar nedeniyle birçok kez karışıklık yaşanmıştır. Bu nedenle sürece bazı açıklamalarla başlayalım: * "Master" (efendi) veya "peer" (eş) terimleri paylaşılan bir bağlamayı ifade eder. Paylaşılan bir bağlama, bir eş grubuna aittir. * Bir eş grubu, birbirlerine yayılım yapan paylaşılan bağlamalar kümesidir. Bunlar bir eş grubu kimliği ile tanımlanır. Eş grubu kimliğine @shared_mnt->mnt_group_id üzerinden erişilebilir. Aynı eş grubundaki paylaşılan bağlamalar aynı eş grubu kimliğine sahiptir. Bir eş grubundaki eşlere @shared_mnt->mnt_share aracılığıyla ulaşılabilir. * "Slave mount" (köle bağlama) veya "dependent mount" (bağımlı bağlama) terimleri, bir eş grubundaki bir eşten yayılım alan bir bağlamayı ifade eder. Diğer bir ifadeyle, paylaşılan bağlamaların köle bağlamaları olabilir ve köle bağlamalarının efendileri olarak paylaşılan bağlamalar bulunabilir. Bir eş grubundaki belirli bir eşin köle bağlamaları, o eşin @shared_mnt->mnt_slave_list adresinde bulunan köle listesinde yer alır. * "Master mount" (efendi bağlama) terimi, bir eş grubundaki bir bağlamayı ifade eder. Yani, bir eş grubundaki paylaşılan bir bağlamayı veya bir eş bağlamayı belirtir. "Master mount" terimi -veya kısaca "master"- çoğunlukla, bir efendi bağlamadan yayılım alan köle bağlamalar bağlamında konuşulurken kullanılır. Bir kölenin efendi bağlaması, köle bağlamanın yayılım aldığı en yakın eş grubunu belirler. Bir kölenin efendi bağlaması @slave_mount->mnt_master üzerinden tanımlanabilir. Farklı köleler, aynı eş grubundaki farklı efendilere işaret edebilir. * Bir eş grubundaki birden fazla eşin boş olmayan ->mnt_slave_lists değerleri olabilir. Eşlerin boş olmayan ->mnt_slave_lists listeleri kesişmez. Sonuç olarak, bir eş grubunun tüm köle bağlamalarının ziyaret edildiğinden emin olmak için, bir eş grubundaki tüm eşlerin ->mnt_slave_lists listeleri taranmalıdır. * Köle bağlamalar, yayılım aldıkları en yakın eş grubundaki bir eşe @slave_mnt->mnt_master aracılığıyla işaret eder (yukarıya bakınız). Bu eşlerle birlikte bir yayılım grubu oluştururlar (aşağıya bakınız). Böylece en yakın eş grubu, bir köle bağlamanın yayılım aldığı eşin/efendinin @slave_mnt->mnt_master->mnt_group_id eş grubu kimliği aracılığıyla tanımlanabilir. * Shared-slave (paylaşılan-köle) bağlama, bir yandan pg1 eş grubunun kölesiyken diğer yandan pg2 adlı başka bir eş grubunun eşi olan bir bağlamadır. Diğer bir ifadeyle, bir eş grubu başka bir eş grubundan yayılım alabilir. Eğer bir pg1 eş grubu, başka bir pg2 eş grubunun kölesiyse, pg1 eş grubundaki tüm eşler ->mnt_master aracılığıyla pg2 eş grubundaki aynı eşe işaret eder. Yani, pg1 eş grubundaki tüm eşler aynı ->mnt_slave_list üzerinde görünür. Dolayısıyla, farklı eş gruplarının köleleri olamazlar. * Pure slave (saf köle) bağlama, bir eş grubunun kölesi olan ancak başka bir eş grubunda eş olmayan bir köle bağlamadır. * Yayılım grubu, tek bir pg1 eş grubu ile ->mnt_master aracılığıyla bu eş grubundaki bir eşe işaret eden tüm köle bağlamalar ve paylaşılan-köle bağlamalardan oluşan bağlama kümesini ifade eder. Diğer bir ifadeyle, @slave_mnt->mnt_master->mnt_group_id değeri @shared_mnt->mnt_group_id değerine eşit olan tüm köle bağlamalardır. Yayılım grubu kavramı, bir yayılım ağacındaki tek bir yayılım seviyesi hakkında konuşmayı kolaylaştırır. Örneğin, propagate_mnt() fonksiyonunda, @dest_mnt'nin doğrudan eşleri ve @dest_mnt'nin eş grubunun tüm köleleri bir pr yayılım grubu oluşturur...
Nasıl düzeltilir
- linux linux_kernel4.9.337, 4.14.303, 4.19.270, 5.4.229, 5.10.163, 5.15.87, 6.0.17, 6.1.3 ya da sonraki bir sürüm
- git.kernel.org/stable/c/11933cf1d91d57da9e5c53822a540bbdc2656c16
- git.kernel.org/stable/c/2dae4211b579ce98985876a73a78466e285238ff
- git.kernel.org/stable/c/784a4f995ee24460aa72e00b085612fad57ebce5
- git.kernel.org/stable/c/7f57df69de7f05302fad584eb8e3f34de39e0311
- git.kernel.org/stable/c/b591b2919d018ef91b4a9571edca94105bcad3df
- git.kernel.org/stable/c/c24cc476acd8bccb5af54849aac5e779d8223bf5
- git.kernel.org/stable/c/cad0d17fb2b0540180ab59e2cd48ad348cc1ee4c
- git.kernel.org/stable/c/cc997490be65da0af8c75a6244fc80bb66c53ce0
- git.kernel.org/stable/c/e7c9f10c44a8919cd8bbd51b228c84d0caf7d518
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 3.14.3 ≤ v < 4.9.337, 4.10 ≤ v < 4.14.303, 4.15 ≤ v < 4.19.270, 4.20 ≤ v < 5.4.229, 5.5 ≤ v < 5.10.163, 5.11 ≤ v < 5.15.87, 5.16 ≤ v < 6.0.17, 6.1 ≤ v < 6.1.3 | 4.9.337, 4.14.303, 4.19.270, 5.4.229, 5.10.163, 5.15.87, 6.0.17, 6.1.3 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.