CVE-2026-80575
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: Giriş: cs40l50-vibra - istifadəçi sahəsindən gələn xüsusi məlumatların yoxlanılması cs40l50_add() funksiyası FF_PERIODIC/FF_CUSTOM effektinin xüsusi məlumatlarını, heç bir tələb olmadan, istifadəçinin EVIOCSFF-ə ötürdüyü ff_effect-dən birbaşa kopyalayır: work_data.custom_data = memdup_array_user(periodic->custom_data, periodic->custom_len, sizeof(s16)); work_data.custom_len = periodic->custom_len; Daha sonra drayver həmin buferdən iki söz oxuyur: cs40l50_effect_bank_set() funksiyasında waveform bankı kimi custom_data[0], cs40l50_effect_index_set() funksiyasında isə bank daxilindəki indeks kimi custom_data[1]. Oxuma əməliyyatlarının heç biri uzunluq yoxlaması ilə əhatə olunmayıb və custom_len tamamilə istifadəçi tərəfindən idarə edilir: - custom_len == 0 olduqda, memdup_array_user() funksiyası memdup_user()-i sıfır uzunluğu ilə çağırır ki, bu da xəta yerinə ZERO_SIZE_PTR qaytarır, nəticədə custom_data[0] onu dereference edir. - custom_len == 1 olduqda, iki bayt ayrılır. ROM və ya RAM bankı effect->type-ı OWT halından kənar saxlayır və beləliklə, custom_data[1] ayrılmış sahədən bir söz sonraya oxunur. Bank dəyərinin özü də yanlış idarə olunur. O, CS40L50_CUSTOM_DATA_MASK (0xffff) ilə maskalanır, lakin s16 tipində saxlanılır, buna görə də 0x8000 və ya daha yüksək olan custom_data[0] mənfi dəyərə çevrilir və "bank_type >= CS40L50_WVFRM_BANK_NUM" testindən keçir. cs40l50_effect_index_set() funksiyası switch operatorunun default halı onu rədd etməyə imkan tapmamışdan əvvəl onunla vib->dsp.banks[] massivini indeksləyir: base_index = vib->dsp.banks[effect->type].base_index; max_index = vib->dsp.banks[effect->type].max_index; Drayverin oxuduğu iki sözün mövcud olması tələb edilir və maskalanmış bank u32 tipində saxlanılır ki, mövcud yuxarı hədd testi bütün diapazonu əhatə etsin. da7280 haptik drayveri artıq custom_len-i bu şəkildə diapazon üzrə yoxlayır.
Necə düzəltmək olar
- Linux Linux3855b6a11f8a7aceb8181cc08c99afef58517006, 52a818c586ae2c36b7324bfaefb547f5e866a8ae, d38554602a0b04e85fad28ce72c7500cf50d419b, 7d5c576cb1c86047b1fcb1aa9532e17fc5e46c1d və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | c38fe1bb5d21c2ce0857965ee06174ee587d6b42 ≤ v < 3855b6a11f8a7aceb8181cc08c99afef58517006, c38fe1bb5d21c2ce0857965ee06174ee587d6b42 ≤ v < 52a818c586ae2c36b7324bfaefb547f5e866a8ae, c38fe1bb5d21c2ce0857965ee06174ee587d6b42 ≤ v < d38554602a0b04e85fad28ce72c7500cf50d419b, c38fe1bb5d21c2ce0857965ee06174ee587d6b42 ≤ v < 7d5c576cb1c86047b1fcb1aa9532e17fc5e46c1d, 6.11 | 3855b6a11f8a7aceb8181cc08c99afef58517006, 52a818c586ae2c36b7324bfaefb547f5e866a8ae, d38554602a0b04e85fad28ce72c7500cf50d419b, 7d5c576cb1c86047b1fcb1aa9532e17fc5e46c1d |
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.