CVE-2026-14367

Aşağı

Təsvir

drivers/i3c/i3c_ibi_workq.c faylındakı I3C IBI alt sistemi, heç bir sinxronizasiya təmin etməyən sadə sys_slist_t kimi tətbiq edilmiş i3c_ibi_work_nodes_free boş siyahısı vasitəsilə statik ayrılmış iş düyünlərini paylayır. Allokasiya köməkçi funksiyaları (i3c_ibi_work_enqueue, i3c_ibi_work_enqueue_target_irq, i3c_ibi_work_enqueue_hotjoin, i3c_ibi_work_enqueue_controller_request, i3c_ibi_work_enqueue_cb) ISR kontekstindən birbaşa sys_slist_get() funksiyasını çağırırdı, iş növbəsi idarəedicisi olan i3c_ibi_work_handler() isə hər iki tərəfdə kilid olmadan iş növbəsi axınından (thread) sys_slist_append() ilə düyünləri geri qaytarırdı. sys_slist_get() və sys_slist_append() funksiyaları nə atomikdir, nə də kəsmələrə qarşı təhlükəsiz olduğu üçün, iş növbəsi axını əlavəetmə prosesinin ortasında baş verən IBI kəsməsi (və ya CONFIG_SMP altında həqiqi paralel giriş) ortaq siyahıda yarış vəziyyətinə (race condition) səbəb olur. Bu, siyahının əlaqələndirilməsini korlayır: bir düyün iki istehlakçıya verilə bilər, düyün itirilə bilər və ya baş/son göstəriciləri uyğunsuz vəziyyətdə qalaraq sys_slist_get() köhnəlmiş və ya yanlış göstərici qaytara bilər. İkiqat təyin halında sonrakı memcpy(ibi_node, ibi_work, sizeof(*ibi_node)) hələ də istifadədə olan düyünün üzərinə yazır; yanlış göstərici isə eyni memcpy funksiyasını sərhədlərdən kənar yazmaya çevirir. Yarış vəziyyəti I3C şin trafiki tərəfindən idarə olunur — IBI-lər, hot-join-lər və kontroller rolu sorğuları şindəki hədəf cihazlardan gəlir və I3C hot-joining cihazlarını dəstəkləyir. Platanın çipdən-çipə şinində I3C periferik qurğusunu idarə edən hücumçu, boşaltma əməliyyatı ilə toqquşacaq şəkildə zamanlanmış yüksək tezlikli kəsmələr yarada bilər. Eksploytasiya şinə fiziki girişi və dar zaman pəncərəsinin tutulmasını tələb edir; ən real təsir sistemin çökməsi və ya donmasıdır (xidmətdən imtina), yaddaşın korlanması mümkündür lakin onu idarə etmək çətindir. Həll yolu bütün boş siyahı sys_slist_get()/sys_slist_append() əməliyyatlarını yeni ibi_work_alloc()/ibi_work_free() köməkçi funksiyalarına bükür və hər biri k_spinlock (ibi_work_lock) ilə qorunur ki, bu da ISR və axın kontekstləri arasındakı yarış vəziyyətini aradan qaldırır.

CiddilikAşağı
CVSS3.1
İstismar ehtimalı—
MəhsulZephyr
Dərc31 avq 2026
İlk görülmə31 avq 2026

Necə düzəltmək olar

Yeniləyin
  • zephyrproject zephyr4.4.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
zephyrproject zephyr3.2.0 ≤ v < 4.4.24.4.2

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.