CVE-2026-16148
Açıklama
ITE it82xx2 USB aygıt denetleyici sürücüsü, drivers/usb/udc/udc_it82xx2.c dosyasındaki it82xx2_enable() (sürücünün .enable işlemi) içerisinde k_work_init_delayable(&priv->suspended_work, suspended_handler) ile veri yolu askıya alma algılama işlemini başlatmıştır. Bu iş öğesi, USB veri yolu aktif olduğu sürece esasen sürekli olarak planlanır: kesme işleyicisi her SOF çerçevesinde bunu yeniden planlar ve suspended_handler() kendisini yeniden planlar; bu nedenle zaman aşımı düğümü normalde çekirdek zaman aşımı listesine veya bir iş kuyruğu bekleyenler kuyruğuna bağlıdır. k_work_init_delayable() (kernel/work.c), herhangi bir meşguliyet kontrolü yapmaksızın, zaman aşımı ve kuyruk bağlantıları da dahil olmak üzere tüm k_work_delayable yapısını koşulsuz olarak üzerine yazar. it82xx2_disable() işlemi ilgili işi iptal etmediği için, normal bir devre dışı bırakma ve ardından etkinleştirme döngüsü api->enable()'ı tekrar çalıştırır (udc_enable() yalnızca gereksiz bir etkinleştirmeyi reddeder, devre dışı bırakma sonrası yeniden etkinleştirmeyi değil) ve hâlâ beklemede olan işi yerinde yeniden başlatarak çekirdek zaman aşımı/iş kuyruğu bağlantılı listelerini bozar ve çekirdek paniğine (kernel panic) neden olur. Harici bir USB ana bilgisayarı — örneğin USB DFU ayırmayı (dfu-util --detach) gerçekleştiren veya tekrarlanan bağlama/sıfırlama/yeniden numaralandırmaya zorlayan bir ana bilgisayar — udc_disable()/udc_enable() geçişlerini tetikler ve askıya alma/devam ettirme zamanlamasını kontrol eder; böylece askıya alma işleminin yeniden etkinleştirme sırasında beklemede kalmasını sağlayabilir. Bu durum, çıkarılabilir ve fiziksel olarak bağlı bir ana bilgisayar üzerinden USB sınırı aracılığıyla erişilebilen, gizlilik veya bütünlük etkisi kanıtlanmamış, kimlik doğrulaması gerektirmeyen bir hizmet reddi (çekirdek paniği) ile sonuçlanır. Düzeltme, k_work_init_delayable() çağrısını tek seferlik ön başlatma (preinit) fonksiyonuna taşıyarak işin tam olarak bir kez başlatılmasını sağlar ve kullanımda olan bir öğenin yeniden başlatılmasını engeller.
Nasıl düzeltilir
- zephyrproject zephyr4.4.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 3.7.0 ≤ v < 4.4.2 | 4.4.2 |
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.