CVE-2026-64191
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: i2c: stub: Yanlış uzunluğa malik I2C blok transferlərini rədd etmək stub_xfer() funksiyasındakı I2C_SMBUS_I2C_BLOCK_DATA halı transfer uzunluğu kimi data->block[0]-dan istifadə edir. Mövcud yoxlama yalnız chip->words[256] registrlər massivinin hüdudlarından kənara çıxmağın qarşısını almaq üçün onu məhdudlaşdırır, lakin i2c_smbus_data.block buferinin (toplam 34 bayt) limiti olan I2C_SMBUS_BLOCK_MAX (32) ilə yoxlamır. Drayver, chip_addr= parametri ilə yüklənməli olan bir tərtibat/test alətidir (CONFIG_I2C_STUB=m, standart olaraq qurulmur). /dev/i2c-* fayllarına girişi olan lokal istifadəçi, I2C_SMBUS_I2C_BLOCK_DATA və data->block[0] > 32 şərti ilə I2C_SMBUS ioctl sorğusu göndərə bilər ki, bu da stub_xfer()-in i2c_smbus_data.block buferinin sonundan kənara oxuma və ya yazmana səbəb olur: BUG: KASAN: stack-out-of-bounds in stub_xfer (drivers/i2c/i2c-stub.c:223) Read of size 1 at addr ffff88800abcfd92 by task exploit/81 Call Trace: <TASK> stub_xfer (drivers/i2c/i2c-stub.c:223) __i2c_smbus_xfer (drivers/i2c/i2c-core-smbus.c:593) i2c_smbus_xfer (drivers/i2c/i2c-core-smbus.c:536) i2cdev_ioctl_smbus (drivers/i2c/i2c-dev.c:391) i2cdev_ioctl (drivers/i2c/i2c-dev.c:478) __x64_sys_ioctl (fs/ioctl.c:583) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) </TASK> Bu xəta i2c-stub-ın .smbus_xfer funksiyasını birbaşa tətbiq etməsi və beləliklə i2c_smbus_xfer_emulated() daxilindəki I2C_SMBUS_BLOCK_MAX yoxlamasını yan keçməsi səbəbindən yaranmışdır. Eyni funksiyadakı I2C_SMBUS_BLOCK_DATA halı I2C_SMBUS_BLOCK_MAX-a görə düzgün şəkildə yoxlanılır, lakin I2C_SMBUS_I2C_BLOCK_DATA halında bu yoxlama aparılmır. Həm eyni funksiyadakı I2C_SMBUS_BLOCK_DATA halı, həm də i2c_smbus_xfer_emulated() daxilindəki I2C_SMBUS_I2C_BLOCK_DATA yoxlaması ilə uyğun olaraq, data->block[0] == 0 və ya data->block[0] > I2C_SMBUS_BLOCK_MAX olan transferlərin -EINVAL ilə rədd edilməsi yolu ilə problem həll edilmişdir.
Necə düzəltmək olar
- linux linux_kernel5.10.260, 5.15.211, 6.1.177, 6.6.144, 6.12.95, 6.18.37, 7.0.14 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 | 2.6.33 ≤ v < 5.10.260, 5.11 ≤ v < 5.15.211, 5.16 ≤ v < 6.1.177, 6.2 ≤ v < 6.6.144, 6.7 ≤ v < 6.12.95, 6.13 ≤ v < 6.18.37, 6.19 ≤ v < 7.0.14, 7.1 | 5.10.260, 5.15.211, 6.1.177, 6.6.144, 6.12.95, 6.18.37, 7.0.14 |
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.