CVE-2026-11742
Açıklama
kernel/queue.c içindeki çekirdek kuyruk yardımcısı z_queue_node_peek(), bir kuyruğun data_q listesinden alınan bir düğümünün başvurusunu çözerek düğümün flag baytını ve k_queue_alloc_append/alloc_prepend aracılığıyla kuyruğa eklenen öğeler için dahili olarak ayrılmış bir alloc_node yapısının veri işaretçisini okur. z_impl_k_queue_peek_head() ve z_impl_k_queue_peek_tail() uygulamaları bu okuma ve başvuru çözme işlemini kuyruğun spinlock'ını tutmadan gerçekleştiriyordu; oysa aynı listeye erişen diğer tüm erişimciler — bir düğümün bağlantısını kaldıran ve arkasındaki alloc_node'u k_free() ile serbest bırakan k_queue_get() dahil — bu kilit altında çalışır. peek eşzamanlı olarak senkronize edilmediğinden, aynı kuyruk üzerinde eşzamanlı bir k_queue_get() (SMP derlemesinde veya önceliklendirme/ISR eşzamanlılığı altında), peek düğüm işaretçisini elde ettiği an ile başvurusunu çözdüğü an arasında düğümü serbest bırakabilir. Bunun ardından peek, serbest bırakılmış ve potansiyel olarak yeniden ayrılmış yığın belleğinden flag bitlerini ve bir veri işaretçisini okur ve çağırana bayat veya sarkan bir işaretçi döndürür. k_fifo ve k_lifo, k_queue üzerine ince sarmalayıcılardır; dolayısıyla bu durum net_buf, Bluetooth, USB ve ağ alt sistemlerinde kullanılan arabellek kuyruklarını etkiler; peek işlemleri ayrıca CONFIG_USERSPACE iş parçacıklarından erişilebilen sistem çağrılarıdır. Sonuçlar, bayat yığın içeriğini (bir işaretçi sözcüğü) sızdırabilen bir serbest bırakıldıktan sonra kullanım okuması ve döndürülen sarkan işaretçi daha sonra canlı bir arabellek olarak tüketildiğinde sistemi çökertebilecek veya belleği bozabilecek bir başvuru çözmedir. Sömürü, yerel erişimle (ör. paylaşılan bir kuyruk üzerinde k_queue_peek_* ile k_queue_get'i yarıştıran bir kullanıcı alanı süreci veya iki CPU) küçük bir yarış penceresini kazanmayı gerektirir; bu nedenle pratik etki sınırlıdır ve düşük önem derecesindedir. Düzeltme, her iki peek uygulamasını kuyruk kilidi üzerinde k_spin_lock/k_spin_unlock ile sararak okuma ve başvuru çözme işlemini eşzamanlı bağlantı kaldırma ve serbest bırakma işlemine göre atomik hale getirir ve peek'i kuyruğun geri kalan kilitleme disipliniyle uyumlu hale getirir.
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 | 1.12.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.