CVE-2026-63934
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: iio: gyro: itg3200: i2c oxumasının yanlış stek yerinə yazılmasının düzəldilməsi itg3200_read_all_channels() funksiyası parametr kimi `__be16 *buf` qəbul edir və i2c_msg təyinatını `(char *)&buf` olaraq doldurur. `buf` parametr olduğu üçün (bir göstərici), `&buf` çağıranın skan buferi ünvanı deyil, itg3200_read_all_channels() funksiyasının stekindəki lokal göstərici yuvasının ünvanıdır. (char *) çevrilməsi tip uyğunsuzluğunu gizlədir. Buna görə də i2c_transfer() funksiyası ITG3200_SCAN_ELEMENTS * sizeof(s16) = 8 baytı parametrinin stek yuvasına yazır və funksiya geri döndükdə bu məlumatlar silinir. itg3200_trigger_handler() funksiyasındakı çağıranın skan buferinə heç vaxt yazı yazılmır, buna görə də iio_push_to_buffers_with_timestamp() hər skan zamanı /dev/iio:deviceX vasitəsilə istifadəçi sahəsinə (userspace) başladılmamış stek məzmununu ötürür — bu, həm funksional xətadır (tetikləmiş bufer vasitəsilə real giroskop və ya temperatur məlumatları çatdırılmır), həm də məlumat sızmasıdır. Buferlənməmiş read_raw() yolu bundan təsirlənmir: o, lokal s16 dəyəri üzərində `&out` istifadə edən itg3200_read_reg_s16() funksiyasından keçir ki, burada bu düzgündür. i2c oxumasının çağıranın buferinə yazması üçün artıq olan `&` işarəsi çıxarılsın.
Necə düzəltmək olar
- linux linux_kernel5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, 6.18.35, 7.0.12 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 | 3.9 ≤ v < 5.10.259, 5.11 ≤ v < 5.15.210, 5.16 ≤ v < 6.1.176, 6.2 ≤ v < 6.6.143, 6.7 ≤ v < 6.12.93, 6.13 ≤ v < 6.18.35, 6.19 ≤ v < 7.0.12, 7.1 | 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, 6.18.35, 7.0.12 |
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.