CVE-2026-68370
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: usb: gadget: dummy_hcd: giveback sırasında fifo_req yeniden kullanımını önle dummy_hcd, dummy_queue() içindeki "emüle edilmiş tek istekli FIFO" hızlı yolunun küçük IN transferleri için yeniden kullandığı tek bir paylaşılan usb_request (dum->fifo_req) içerir: çağıranın isteğini buna kopyalar (req->req = *_req) ve kuyruğa alır; list_empty(&fifo_req.queue) durumunu "yuva boş" olarak değerlendirir. Tamamlanma tarafı (dummy_timer/transfer/nuke/dummy_dequeue) standart kalıbı izler: list_del_init(&req->queue) isteği listeden çıkarır, ardından kilit bırakılır ve usb_gadget_giveback_request() req->complete() işlevini çağırır. Ancak list_del_init(), tamamlanma geri çağrısı dönmeden *önce* fifo_req.queue'yu boş görünür hale getirir; bu nedenle başka bir CPU üzerinde eşzamanlı çalışan dummy_queue() yuvayı boş olarak görür, fifo_req'i yeniden kullanır ve req->req = *_req çalıştırarak dummy_timer tam onu çağırırken req->complete işaretçisinin üzerine yazar. Dolaylı çağrı daha sonra bozulmuş bir işaretçiye atlar ve dummy_timer içinde genel koruma hatası / sayfa hatasına neden olur (syzkaller extid faf3a6cf579fc65591ca). Üzerine yazan yazma işlemi, canlı bir paylaşılan nesne üzerinde sınırlar içinde bir memcpy olduğundan KASAN bunu işaretleyemez. Paylaşılan isteğin tüm yaşam döngüsünü kapsayan bir fifo_req_busy biti ekleyin: dummy_queue() içinde FIFO hızlı yolu fifo_req'i aldığında bunu ayarlayın (list_empty(&fifo_req.queue) testinin yerine geçen hızlı yol koruması haline getirin) ve tamamlanma geri çağrısı döndükten sonra dört gadget-request giveback noktasının tamamında kullanılan bir dummy_giveback() yardımcı işlevi aracılığıyla temizleyin. Paylaşılan yuva, tamamlanma geri çağrısı bitene kadar artık yeniden kullanılamaz.
Nasıl düzeltilir
- Linux Linux16a685172abc9233728830e27d26ffa778975b51, 95f30a21612cc65761c58ba044b1767699437317, 3cab0e5498d0fbb21fe1a9181f7bda9a844a697e, e2b2740f1242bc70b5b46da2cdbbaa419f490e59, 67b589d09a96882d56842dced5698ed8dd06ce45, e239ea91b48180ed48a86ac25643832a02c88456, e24b33618231034bf01dfaff4fd3409d4b4d5b2e, d5e5cd3654d2b5359a12ea6586120f05b28634ee ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 16a685172abc9233728830e27d26ffa778975b51, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 95f30a21612cc65761c58ba044b1767699437317, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 3cab0e5498d0fbb21fe1a9181f7bda9a844a697e, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < e2b2740f1242bc70b5b46da2cdbbaa419f490e59, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 67b589d09a96882d56842dced5698ed8dd06ce45, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < e239ea91b48180ed48a86ac25643832a02c88456, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < e24b33618231034bf01dfaff4fd3409d4b4d5b2e, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < d5e5cd3654d2b5359a12ea6586120f05b28634ee, 2.6.12 | 16a685172abc9233728830e27d26ffa778975b51, 95f30a21612cc65761c58ba044b1767699437317, 3cab0e5498d0fbb21fe1a9181f7bda9a844a697e, e2b2740f1242bc70b5b46da2cdbbaa419f490e59, 67b589d09a96882d56842dced5698ed8dd06ce45, e239ea91b48180ed48a86ac25643832a02c88456, e24b33618231034bf01dfaff4fd3409d4b4d5b2e, d5e5cd3654d2b5359a12ea6586120f05b28634ee |
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.