CVE-2025-22023
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: usb: xhci: Stopped - Length Invalid durumunda atlama yapma v6.11 sürümündeki d56b0b2ab142 ("usb: xhci: ensure skipped isoc TDs are returned when isoc ring is stopped") commit'ine kadar sürücü, Stoppend ve Stopped - Length Invalid olaylarını işlerken kaçırılan izokron (isochronous) TD'leri atlamıyordu. Bunun yerine, hatalı bir şekilde atlama bayrağını temizliyordu; bu da gelecekteki olayların, iptal edilene kadar kuyruktan asla kaldırılmayan kaçırılmış TD ile eşleşmemesine neden olarak halkanın (ring) takılı kalmasına yol açıyordu. Bu hatalı mantığın, yaklaşık 10 yıl önce 3.x serisinden beri önemli ölçüde değişmeden mevcut olduğu görülmektedir; bu durum öncelikle normal kullanımda bu durumun nispeten nadir olduğunu göstermektedir ancak spesifikasyona göre bunun mümkün olmaması için hiçbir neden yoktur. d56b0b2ab142 sonrası, söz konusu Stopped olayları işlenirken TD'ler anında atlanmaktadır. Bu durum, tamamlanmış TD'lerde (muhtemelen zaten geri verilmiş) veya Link ve No-Op TRB'lerinde meydana gelen Stopped - Length Invalid durumunda potansiyel bir sorun teşkil etmektedir. Böyle bir olay, herhangi bir TD ile eşleştiği şeklinde tanınmayacak (bir TD içindeki nadir Link TRB olmadığı sürece) ve bekleyen tüm TD'lerin atlanmasıyla sonuçlanacaktır; bu da onları muhtemelen tamamlanmadan önce geri vererek izokron veri kaybı riskine ve donanım tarafından tetiklenen bir serbest bırakıldıktan sonra kullanım (UAF) riskine yol açacaktır. Bir uzlaşma olarak, bu tür bir olayda atlama yapılmamakta ve atlama bayrağı temizlenmemektedir. Böylece bir sonraki olay, kaçırılan TD'leri atlayacaktır. Bir TD içerisindeki Link üzerinde Stopped - Length Invalid durumunun işlenmemesinin dezavantajı, TD iptal edildiğinde gerçek uzunluğunun, TD durdurulmadan önce (sessizce) tamamlanan TRB'leri hesaba katacak şekilde güncellenmeyecek olmasıdır. Bu tamamlama olayları dizisini oluşturmada başarılı olamadığım için ortaya çıkan herhangi bir felaketin kesin bir kanıtı bulunmamaktadır. Bu, çok nadir ve belirsiz bir durum olabilir. Bu yamanın tek motivasyonu, böyle düşük ihtimalli bir olay gerçekleşirse, kısmen tamamlanmış bir izokron çerçeveyi boş olarak rapor etme riskini, UAF kumarına tercih etmektir. Bu durum, atlama kararları verilirken Stopped olayının TRB işaretçisine bakılarak daha düzgün bir şekilde düzeltilecektir; ancak bu tür bir yeniden çalışma, birkaç yıl boyunca mevcut kalacak olan v6.12 sürümüne geriye dönük olarak uygulanmayacaktır.
Nasıl düzeltilir
- linux linux_kernel6.12.22, 6.13.10 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 | 6.11 ≤ v < 6.12.22, 6.13 ≤ v < 6.13.10, 6.14 | 6.12.22, 6.13.10 |
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.