CVE-2026-68329

Yüksek

Açıklama

Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: iommu/amd: iommu_completion_wait() fonksiyonunda erken dönmek yerine tamamlanmanın beklenmesi need_sync, söz konusu IOMMU arkasındaki tüm domainler ve cihazlar tarafından paylaşılan her IOMMU'ya özel bir bayraktır. Bir komut sync == true ile kuyruğa alındığında ayarlanır ve bir tamamlanma bekleme (CWAIT) komutu kuyruğa alındığında temizlenir. Ancak, temizlenmiş bir need_sync yalnızca kapsayıcı bir CWAIT'in kuyruğa alındığı anlamına gelir; daha önce kuyruğa alınan tüm komutların donanımda gerçekten tamamlandığı anlamına gelmez. iommu_completion_wait(), need_sync değerini kilitsiz olarak okuyor ve bu değer false olduğunda erken dönüyordu. Bu durum, çoklu CPU senaryosunda "daha önce kuyruğa alınan tüm komutlar tamamlanana kadar engelle" sözleşmesini bozmaktadır: CPU2: inv-B kuyruğa ekle => need_sync = true CPU1: CWAIT(N) kuyruğa ekle; need_sync = false; ardından wait_on_sem(N) CPU2: need_sync == false oku => 0 döndür (bekleme yok!) CPU2, inv-B işlemi henüz tamamlanmamış olsa bile (inv-B'den sonra kuyruğa alınan CWAIT(N) henüz sinyal vermemiştir) herhangi bir sıra numarasını beklemeden döner. Ardından CPU2, örneğin sayfa tablosu sayfalarını serbest bırakırken IOMMU hala güncelliğini yitirmiş çevrimleri yürütmeye devam edebilir ve bu da bir use-after-free penceresi açar. Bu, bayrağın anlamı bakımından mantıksal bir yarış durumudur (race condition), bellek görünürlüğü sorunu değildir; dolayısıyla tek başına bariyerler yardımcı olmaz. Gereksiz CWAIT komutlarından kaçınma optimizasyonunu kaybetmeden düzeltme şu şekilde yapılmıştır: need_sync test edilmeden önce iommu->lock alınır ve değer false olduğunda erken dönülmez, bunun yerine tahsis edilen son sıra numarası (cmd_sem_val) beklenir. need_sync == false olması, son CWAIT'ten sonra hiçbir sync komutunun kuyruğa alınmadığını ima ettiğinden, bu CWAIT henüz tamamlanmamış her komuttan sonra FIFO sırasına girmiştir; böylece onun sıra numarasının beklenmesi, önceki tüm komutların (başka bir CPU tarafından kuyruğa alınmış olabilir) tamamlandığını garanti eder. Bekleyen işlerin olduğu yaygın yol değişmemiştir ve fazladan bir donanım komutu verilmemektedir.

ÖnemYüksek
CVSS8.8
İstismar olasılığı—
ÜrünLinux
Yayın10 Ağu 2026
İlk görülme10 Ağu 2026
Zayıflık türüCWE-362Yarış durumu

Nasıl düzeltilir

Güncelleyin
  • Linux Linux82c9a749d44efaaa1a1c781f8a6cf1747718f228, ab7faf5a172ebfdc423ebb3eea4d472740de82f9, 93494bd446396c257fb589f59894577e96e406e2, d053eb7e09e10cbdca3fca8b35c1017d438091b2, 02f8cefa2ad95ea3754f0cfd6fbae7f866202ccb, 1e75a8255f11c81fb07e81e5029cfd75804350a0 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linux815b33fdc279d34ab40a8bfe1866623a4cc5669b ≤ v < 82c9a749d44efaaa1a1c781f8a6cf1747718f228, 815b33fdc279d34ab40a8bfe1866623a4cc5669b ≤ v < ab7faf5a172ebfdc423ebb3eea4d472740de82f9, 815b33fdc279d34ab40a8bfe1866623a4cc5669b ≤ v < 93494bd446396c257fb589f59894577e96e406e2, 815b33fdc279d34ab40a8bfe1866623a4cc5669b ≤ v < d053eb7e09e10cbdca3fca8b35c1017d438091b2, 815b33fdc279d34ab40a8bfe1866623a4cc5669b ≤ v < 02f8cefa2ad95ea3754f0cfd6fbae7f866202ccb, 815b33fdc279d34ab40a8bfe1866623a4cc5669b ≤ v < 1e75a8255f11c81fb07e81e5029cfd75804350a0, 3.082c9a749d44efaaa1a1c781f8a6cf1747718f228, ab7faf5a172ebfdc423ebb3eea4d472740de82f9, 93494bd446396c257fb589f59894577e96e406e2, d053eb7e09e10cbdca3fca8b35c1017d438091b2, 02f8cefa2ad95ea3754f0cfd6fbae7f866202ccb, 1e75a8255f11c81fb07e81e5029cfd75804350a0

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.

Intelligence 360 paketinde

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.

CVE-2026-68329 · Linux · Dark Radar