CVE-2024-26596

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net: dsa: DSA olmayan netdevice hadisələrində yoxlamadan əvvəl netdev_priv() istinadının düzəldilməsi Səhvə səbəb olan commit-dən sonra sistemdəki hər bir NETDEV_CHANGEUPPER və NETDEV_PRECHANGEUPPER hadisəsi üçün bu istinadı etməyə başlamışdıq. static inline struct dsa_port *dsa_user_to_port(const struct net_device *dev) { struct dsa_user_priv *p = netdev_priv(dev); return p->dp; } Bu, təbii ki, yanlışdır, çünki bütün net_devices-lərin netdev_priv()-i struct dsa_user_priv tipində olmur. Lakin struct dsa_user_priv kifayət qədər kiçikdir və p->dp 16-cı ofsetdən başlayaraq 8 baytın istinad edilməsi deməkdir. Əksər drayverlər onsuz da bu qədər şəxsi yaddaş ayırdığı üçün girişimiz xətaya səbəb olmur və biz yanlış məlumatları tezliklə tullayırıq, buna görə də bu problem aşkar edilməmişdi. Lakin dummy interfeysi, alloc_netdev() funksiyasını 0 ölçülü priv ilə çağırdığı üçün müəyyən dərəcədə xüsusidir. Beləliklə, hər bir netdev_priv() istinadı etibarsız olur və yeni üst hissə kimi VLAN ilə NETDEV_PRECHANGEUPPER hadisəsi yaydıqda bunu alırıq: $ ip link add dummy1 type dummy $ ip link add link dummy1 name dummy1.100 type vlan id 100 [ 43.309174] ================================================================== [ 43.316456] BUG: KASAN: slab-out-of-bounds in dsa_user_prechangeupper+0x30/0xe8 [ 43.323835] Read of size 8 at addr ffff3f86481d2990 by task ip/374 [ 43.330058] [ 43.342436] Call trace: [ 43.366542] dsa_user_prechangeupper+0x30/0xe8 [ 43.371024] dsa_user_netdevice_event+0xb38/0xee8 [ 43.375768] notifier_call_chain+0xa4/0x210 [ 43.379985] raw_notifier_call_chain+0x24/0x38 [ 43.384464] __netdev_upper_dev_link+0x3ec/0x5d8 [ 43.389120] netdev_upper_dev_link+0x70/0xa8 [ 43.393424] register_vlan_dev+0x1bc/0x310 [ 43.397554] vlan_newlink+0x210/0x248 [ 43.401247] rtnl_newlink+0x9fc/0xe30 [ 43.404942] rtnetlink_rcv_msg+0x378/0x580 Adət olduğu kimi, tip yoxlamasından sonra istinad edərək kernel oops xətasının qarşısını alın.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc23 fev 2024
İlk görülmə23 fev 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.7.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.1.0 ≤ v < 6.7.26.7.2

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-2024-26596 · Linux Kernel · Dark Radar