CVE-2026-89471
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: power: supply: cros_usbpd-charger: EC tarafından bildirilen port sayısı sınırlandırıldı cros_usbpd_charger_probe() fonksiyonu, EC'den iki port sayısı okur ve sabit boyutlu bir diziyi doldururken bunlardan birini, num_charger_ports değerini döngü sınırı olarak kullanır: struct port_data *ports[EC_USB_PD_MAX_PORTS]; /* 8 giriş */ ... for (i = 0; i < charger->num_charger_ports; i++) charger->ports[charger->num_registered_psy++] = port; Hem num_usbpd_ports (EC_CMD_USB_PD_PORTS üzerinden) hem de num_charger_ports (EC_CMD_CHARGE_PORT_COUNT üzerinden), EC tarafından bildirilen u8 değerleridir. Tek doğrulama, EC tarafından bildirilen bu iki değeri birbirleriyle karşılaştıran bir mantık kontrolüdür: if (num_charger_ports < num_usbpd_ports || num_charger_ports > num_usbpd_ports + 1) return -EPROTO; Her iki sayım da ports[] dizisinin boyutu olan EC_USB_PD_MAX_PORTS ile hiçbir zaman karşılaştırılmaz. Herhangi bir N > 8 için (örneğin her ikisi de 255) num_usbpd_ports == num_charger_ports == N şeklinde bildirimde bulunan arızalı, kötü niyetli veya ele geçirilmiş bir EC bu kontrolü geçer ve ardından döngü, devm_kzalloc()'dan ayrılan charger_data içerisindeki 8 girişli ports[] dizisine N adet işaretçi yazar; böylece diziyi 255 - 8 = 247 girişe kadar (~1976 bayt) aşarak bir slab out-of-bounds write hatasına yol açar. ports[] dizisinin kapasitesinden daha büyük olan port sayıları reddedilir.
Nasıl düzeltilir
- Linux Linux0b5096f6804161b61451b1cec0e38678630be849, c46c9f447415ca802afab51dea1eafc08ddff1c6, a1905375dfc0b9612bbee52fc066e3a70c0d671d, 2746d502b12b343384fb747bdef9cbcfbd7444a2, fd29d08ee487f3bf50f2575aaa74f78a74b09b21, 78be8b7403ff7638162438b664a07d19da76059e, 3d1e01443b221081258ff34ea0cdd0431e4ff62e, 48355ce49359740f52e94d3623f6fc557ce341f0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | f68b883e8fad23ed0ac4756d91594809d78678ed ≤ v < 0b5096f6804161b61451b1cec0e38678630be849, f68b883e8fad23ed0ac4756d91594809d78678ed ≤ v < c46c9f447415ca802afab51dea1eafc08ddff1c6, f68b883e8fad23ed0ac4756d91594809d78678ed ≤ v < a1905375dfc0b9612bbee52fc066e3a70c0d671d, f68b883e8fad23ed0ac4756d91594809d78678ed ≤ v < 2746d502b12b343384fb747bdef9cbcfbd7444a2, f68b883e8fad23ed0ac4756d91594809d78678ed ≤ v < fd29d08ee487f3bf50f2575aaa74f78a74b09b21, f68b883e8fad23ed0ac4756d91594809d78678ed ≤ v < 78be8b7403ff7638162438b664a07d19da76059e, f68b883e8fad23ed0ac4756d91594809d78678ed ≤ v < 3d1e01443b221081258ff34ea0cdd0431e4ff62e, f68b883e8fad23ed0ac4756d91594809d78678ed ≤ v < 48355ce49359740f52e94d3623f6fc557ce341f0, 4.19 | 0b5096f6804161b61451b1cec0e38678630be849, c46c9f447415ca802afab51dea1eafc08ddff1c6, a1905375dfc0b9612bbee52fc066e3a70c0d671d, 2746d502b12b343384fb747bdef9cbcfbd7444a2, fd29d08ee487f3bf50f2575aaa74f78a74b09b21, 78be8b7403ff7638162438b664a07d19da76059e, 3d1e01443b221081258ff34ea0cdd0431e4ff62e, 48355ce49359740f52e94d3623f6fc557ce341f0 |
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.
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.