CVE-2026-93287

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: i2c: smbus: ümumi yolda həddindən artıq böyük blok transferlərini rədd etmək SMBus blok transfer uzunluğu olan data->block[0], i2c_smbus_xfer_emulated() funksiyasında yoxlanılır, lakin bu yoxlama tracepoint-lər üçün çox gec baş verir və adapter yerli smbus_xfer tətbiqi təmin etdikdə tamamilə ötürülür. Bu, istifadəçi tərəfindən idarə olunan həddindən artıq böyük blok uzunluqlarının yoxlanılmadan tracepoint memcpy çağırışlarına və drayver geri çağırma (callback) funksiyalarına çatmasına imkan verir. Hər hansı bir tracepoint işə düşməzdən və ya drayver geri çağırması icra olunmazdan əvvəl, çağırıcı tərəfindən təqdim edilən uzunluğu sıfır olan və ya I2C_SMBUS_BLOCK_MAX həddini aşan blok transferlərini rədd edən erkən validasiya __i2c_smbus_xfer() funksiyasına əlavə edilmişdir. SMBus blok oxumaları zamanı data->block[0] cihaz tərəfindən doldurulduğu üçün, yoxlama yalnız uzunluğun faktiki olaraq çağırıcı tərəfindən təmin edildiyi əməliyyatlar üçün tətbiq edilir. Bu, emulyasiya edilmiş yoldakı mövcud -EINVAL konvensiyası ilə uyğundur və bütün aşağı axın istehlakçılarını eyni anda qoruyur: smbus_write tracepoint-i, bütün yerli smbus_xfer drayver tətbiqləri və emulyasiya edilmiş yol. Bu dəyişikliklə iki fərqli xəta düzəldilmişdir: Xəta 1: smbus_write tracepoint OOB (include/trace/events/smbus.h) trace_smbus_write() hər hansı validasiyadan əvvəl işə düşür və data->block[0]+1 baytı 34 baytlıq hadisə buferinə kopyalayır. block[0]=0xfe olduqda, tracepoint 255 baytı kopyalayır və 221 bayt miqdarında daşma baş verir. BUG: KASAN: stack-out-of-bounds in trace_event_raw_event_smbus_write+0x27c/0x530 Read of size 255 at addr ffff88800d98fcf8 by task poc_smbus/91 Call Trace: <TASK> __asan_memcpy+0x23/0x80 trace_event_raw_event_smbus_write+0x27c/0x530 __i2c_smbus_xfer+0x43a/0xa40 i2c_smbus_xfer+0x19e/0x340 i2cdev_ioctl_smbus+0x38f/0x7f0 i2cdev_ioctl+0x35e/0x680 __x64_sys_ioctl+0x147/0x1e0 do_syscall_64+0xcf/0x15a0 entry_SYSCALL_64_after_hwframe+0x76/0x7e </TASK> Xəta 2: i2c-stub I2C_SMBUS_I2C_BLOCK_DATA OOB (drivers/i2c/i2c-stub.c) stub_xfer() funksiyası .smbus_xfer-i birbaşa tətbiq edir və block[0]-ı yalnız 256-komanda qarşısında məhdudlaşdırır, I2C_SMBUS_BLOCK_MAX qarşısında yox. block[0]=0xff və command=0 olduqda, dövr i=254-ə qədər block[1+i]-yə müraciət edir ki, bu da 34 baytlıq birləşməni (union) xeyli aşır. UBSAN: array-index-out-of-bounds in drivers/i2c/i2c-stub.c:223:44 index 34 is out of range for type '__u8 [34]' Call Trace: <TASK> __ubsan_handle_out_of_bounds+0xd7/0x120 stub_xfer+0x1971/0x198f [i2c_stub] __i2c_smbus_xfer+0x306/0xa40 i2c_smbus_xfer+0x19e/0x340 i2cdev_ioctl_smbus+0x38f/0x7f0 i2cdev_ioctl+0x35e/0x680 __x64_sys_ioctl+0x147/0x1e0 do_syscall_64+0xcf/0x15a0 entry_SYSCALL_64_after_hwframe+0x76/0x7e </TASK> Hər iki iz KASAN+UBSAN ilə v7.0-rc6+i2c/for-current versiyasında təkrar istehsal edilmişdir.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux
Dərc24 sen 2026
İlk görülmə24 sen 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linux856dffcc097b3d8ed45a643ebda07cb92968cb33, 356875e33f2c6d2061a02c9dec1a1e639d265a55, 72ca5e0b8b7a62615758f8871c34d61616c2dc8b, df077253f6405d67ad087538e495ef32a05717b7, f09edffba97d37b1fdff5f818a9a45f8a98ac171, c4b478bc50b7ca9865e237909941253a0f7111a2, 3051cd060fa496df42954291fa2306ed2eab4ecc və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux4710317891e4824ce1510a6b5066abbd3e917750 ≤ v < 856dffcc097b3d8ed45a643ebda07cb92968cb33, 4710317891e4824ce1510a6b5066abbd3e917750 ≤ v < 356875e33f2c6d2061a02c9dec1a1e639d265a55, 4710317891e4824ce1510a6b5066abbd3e917750 ≤ v < 72ca5e0b8b7a62615758f8871c34d61616c2dc8b, 4710317891e4824ce1510a6b5066abbd3e917750 ≤ v < df077253f6405d67ad087538e495ef32a05717b7, 4710317891e4824ce1510a6b5066abbd3e917750 ≤ v < f09edffba97d37b1fdff5f818a9a45f8a98ac171, 4710317891e4824ce1510a6b5066abbd3e917750 ≤ v < c4b478bc50b7ca9865e237909941253a0f7111a2, 4710317891e4824ce1510a6b5066abbd3e917750 ≤ v < 3051cd060fa496df42954291fa2306ed2eab4ecc, 2.6.33856dffcc097b3d8ed45a643ebda07cb92968cb33, 356875e33f2c6d2061a02c9dec1a1e639d265a55, 72ca5e0b8b7a62615758f8871c34d61616c2dc8b, df077253f6405d67ad087538e495ef32a05717b7, f09edffba97d37b1fdff5f818a9a45f8a98ac171, c4b478bc50b7ca9865e237909941253a0f7111a2, 3051cd060fa496df42954291fa2306ed2eab4ecc

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.

CVE-2026-93287 · Linux · Dark Radar