CVE-2026-93287

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: i2c: smbus: ortak yoldaki aşırı boyutlu blok transferlerini reddet SMBus blok transfer uzunluğu olan data->block[0], i2c_smbus_xfer_emulated() fonksiyonunda doğrulanmaktadır; ancak bu kontrol tracepoint'ler için çok geç çalışmakta ve adaptör yerel bir smbus_xfer uygulaması sağladığında tamamen atlanmaktadır. Bu durum, kullanıcı tarafından kontrol edilen aşırı boyutlu blok uzunluklarının, herhangi bir kontrolden geçmeden tracepoint memcpy çağrılarına ve sürücü geri çağırmalarına ulaşmasına izin vermektedir. Herhangi bir tracepoint tetiklenmeden veya sürücü geri çağırması çalışmadan önce, çağırıcı tarafından sağlanan uzunluğun sıfır olduğu veya I2C_SMBUS_BLOCK_MAX değerini aştığı blok transferlerini reddeden erken bir doğrulama __i2c_smbus_xfer() fonksiyonuna eklenmiştir. SMBus blok okumalarında data->block[0] cihaz tarafından doldurulduğu için, kontrol yalnızca uzunluğun gerçekten çağırıcı tarafından sağlandığı işlemlerle sınırlandırılmıştır. Bu yaklaşım, emüle edilmiş yoldaki mevcut -EINVAL kuralıyla tutarlıdır ve tüm alt tüketici bileşenleri aynı anda korur: smbus_write tracepoint'i, tüm yerel smbus_xfer sürücü uygulamaları ve emüle edilmiş yol. Bu değişiklik ile iki farklı hata düzeltilmiştir: Hata 1: smbus_write tracepoint OOB (include/trace/events/smbus.h) trace_smbus_write(), herhangi bir doğrulamadan önce tetiklenir ve data->block[0]+1 baytı 34 baytlık bir olay tamponuna kopyalar. block[0]=0xfe olduğunda, tracepoint 255 bayt kopyalayarak 221 bayt oranında arabellek taşmasına neden olur. 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> Hata 2: i2c-stub I2C_SMBUS_I2C_BLOCK_DATA OOB (drivers/i2c/i2c-stub.c) stub_xfer(), .smbus_xfer fonksiyonunu doğrudan uygular ve block[0] değerini I2C_SMBUS_BLOCK_MAX yerine yalnızca 256-komut değerine göre sınırlar. block[0]=0xff ve command=0 olduğunda döngü, 34 baytlık union yapısının çok ötesinde, i değeri 254'e kadar block[1+i] öğelerine erişir. 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> Her iki izleme kaydı da KASAN+UBSAN ile v7.0-rc6+i2c/for-current sürümünde yeniden üretilmiştir.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux
Yayın24 Eyl 2026
İlk görülme24 Eyl 2026

Nasıl düzeltilir

Güncelleyin
  • Linux Linux856dffcc097b3d8ed45a643ebda07cb92968cb33, 356875e33f2c6d2061a02c9dec1a1e639d265a55, 72ca5e0b8b7a62615758f8871c34d61616c2dc8b, df077253f6405d67ad087538e495ef32a05717b7, f09edffba97d37b1fdff5f818a9a45f8a98ac171, c4b478bc50b7ca9865e237909941253a0f7111a2, 3051cd060fa496df42954291fa2306ed2eab4ecc ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
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

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2026-93287 · Linux · Dark Radar