CVE-2026-46041
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: greybus: gb-beagleplay: hdlc_tx_frames() funksiyasında atomik kontekstdə yuxuya getmə (sleep) problemi düzəldildi hdlc_append() dövrvi buferdə yer gözləmək üçün usleep_range() funksiyasını çağırır, lakin o, hdlc_tx_frames() -> hdlc_append_tx_frame()/hdlc_append_tx_u8()/və s. vasitəsilə tx_producer_lock (spinlock) tutulmuş halda çağırılır. Spinlock tutulduğu zaman yuxuya getmək qadağandır və bu, "BUG: scheduling while atomic" xətasına səbəb ola bilər. Bu problem, bufer sahəsinin gözlənilməsi prosesinin hdlc_append() funksiyasından çıxarılaraq, spinlock əldə edilməzdən əvvəl hdlc_tx_frames() funksiyasına köçürülməsi ilə həll edilmişdir. Yeni axın belədir: 1. Kodlaşdırılmış freymin ən pis haldakı uzunluğu öncədən hesablanır. 2. Kifayət qədər yer ayrılana qədər kiliddən kənarda (yuxuya gedərək) gözlənilir və buferi boşaltmaq üçün TX istehlakçı işi aktivləşdirilir. 3. Spinlock əldə edilir, sahə yenidən yoxlanılır və bütün freym atomik şəkildə yazılır. Bu, yuxuya getmənin yalnız heç bir kilid tutulmadıqda baş verməsini və freymlərin ya tamamilə növbəyə alınmasını, ya da ümumiyyətlə yazılmamasını təmin edir. Bu xəta CodeQL statik analiz aləti (interprocedural sleep-in-atomic sorğusu) və mənim kod nəzərdən keçirməm vasitəsilə aşkar edilmişdir.
Necə düzəltmək olar
- linux linux_kernel6.12.86, 6.18.27, 7.0.4 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 6.7 ≤ v < 6.12.86, 6.13 ≤ v < 6.18.27, 6.19 ≤ v < 7.0.4 | 6.12.86, 6.18.27, 7.0.4 |
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.
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.