CVE-2023-53123
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: PCI: s390: fonksiyon başına hotplug ile PCI kaynaklarının serbest bırakıldıktan sonra kullanımı (use-after-free) hatası düzeltildi s390 üzerinde, çok fonksiyonlu bir aygıta ait olsalar bile PCI fonksiyonları tek tek hotplug edilebilir. Özellikle bir SR-IOV aygıtında VF'ler kaldırılabilir ve daha sonra yeniden eklenebilir. Ancak a50297cf8235 ("s390/pci: separate zbus creation from scanning") numaralı commit'te; bu kaynaklar hot-unplug sırasında serbest bırakılıp temizlenmiş olsa dahi, struct pci_bus ve struct zpci_bus'ın kaynak listesinin PCI fonksiyonlarının MMIO kaynaklarına olan referanslarını tutmaya devam ettiği gözden kaçırılmıştır. Bu bayat kaynaklar, PCI fonksiyonu yeniden ortaya çıktığında talep edilebilir ve bu durum serbest bırakıldıktan sonra kullanıma (use-after-free) yol açabilir. s390'a özgü kodda bu use-after-free hatasını gidermek için araştırılan fikirlerden biri, kaynakların bir PCI fonksiyonunun ilk göründüğü andan itibaren, çok fonksiyonlu bir aygıt için oluşturulan tüm sanal PCI veri yolu kaybolana kadar basitçe tutulmasıydı. Ancak buradaki sorun, yapay MMIO adresleri (adres çerezleri) gereksinimi nedeniyle, yeniden takılma (re-plug) sırasında adres çerezlerinin uyumlu kalmasını sağlamak için ek mantığın gerekmesidir. Aynı zamanda MMIO kaynakları anlamsal olarak PCI fonksiyonuna aittir, bu nedenle yaşam döngülerini fonksiyona bağlamak daha mantıklı görünmektedir. Bunun yerine daha basit bir yaklaşım, diğer PCI fonksiyonlarının PCI veri yolundaki kaynaklarına dokunmadan, tekil olarak hot-unplug edilen bir PCI fonksiyonunun kaynaklarını PCI veri yolunun kaynak listesinden kaldırmaktır. Bu işlem, tek bir kaynağı kaldırmak için pci_bus_remove_resource() işlevi tanıtılarak gerçekleştirilmiştir. Benzer şekilde, kaynağın struct zpci_bus'ın kaynak listesinden de kaldırılması gerekir. Ancak, MMIO kaynaklarının struct zpci_bus'ın kaynak listesine eklenmesine aslında hiç gerek olmadığı ve bunun yerine doğrudan zpci_bar_struct'ın kaynak işaretçisinin kullanılabileceği görülmüştür.
Nasıl düzeltilir
- linux linux_kernel5.15.104, 6.1.21, 6.2.8 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 5.13 ≤ v < 5.15.104, 5.16 ≤ v < 6.1.21, 6.2 ≤ v < 6.2.8, 6.3 | 5.15.104, 6.1.21, 6.2.8 |
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.