CVE-2025-39985

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: can: mcba_usb: bufer daşmasının qarşısını almaq üçün ndo_change_mtu() doldurulsun PF_PACKET göndərmək CAN freymvork məntiqini yan keçməyə və birbaşa CAN drayverinin xmit() funksiyasına çatmağa imkan verir. PF_PACKET freymvorku tərəfindən yerinə yetirilən yeganə yoxlama skb->len dəyərinin interfeysin MTU-suna uyğun olduğundan əmin olmaqdır. Təəssüf ki, mcba_usb drayveri öz net_device_ops->ndo_change_mtu() funksiyasını doldurmadığı üçün hücum edən şəxs, məsələn, aşağıdakıları edərək etibarsız MTU konfiqurasiya edə bilər: $ ip link set can0 mtu 9999 Bundan sonra hücum edən şəxs ETH_P_CANXL protokolu vasitəsilə PF_PACKET soketi aça bilər: socket(PF_PACKET, SOCK_RAW, htons(ETH_P_CANXL)) bu, zərərli CAN XL freymlərini inyeksiya etmək üçündür. Məsələn: struct canxl_frame frame = { .flags = 0xff, .len = 2048, }; CAN drayverlərinin xmit() funksiyaları skb-nin etibarlılığını yoxlamaq üçün can_dev_dropped_skb() funksiyasını çağırır, lakin yuxarıdakı şərtlər altında zərərli paket can_dev_dropped_skb() yoxlamalarından keçə bilir: 1. skb->protocol ETH_P_CANXL olaraq təyin edilmişdir və bu etibarlıdır (funksiya cihazın faktiki imkanlarını yoxlamır). 2. uzunluq etibarlı CAN XL uzunluğudur. Beləliklə, mcba_usb_start_xmit() düzgün idarə edə bilmədiyi bir CAN XL freymi qəbul edir və onu səhvən CAN freymi kimi şərh edir. Bu, bufer daşmasına səbəb ola bilər. Drayver aşağıdakı sətirlərdə heç bir əlavə yoxlama aparmadan cf->len dəyərini olduğu kimi istifadə edəcək: usb_msg.dlc = cf->len; memcpy(usb_msg.data, cf->data, usb_msg.dlc); Burada cf->len CAN XL freyminin flags sahəsinə uyğun gəlir. Əvvəlki nümunəmizdə canxl_frame->flags dəyərini 0xff olaraq təyin etmişdik. Gözlənilən maksimum uzunluq 8 olduğu üçün 247 baytlıq bufer daşması baş verir! İnterfeysin MTU-sunun CAN_MTU-dan böyük təyin edilməməsini təmin etmək üçün net_device_ops->ndo_change_mtu() doldurulub. Kök səbəbin aradan qaldırılması ilə bufer daşmasının qarşısı alınmış olur.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux
Dərc15 okt 2025
İlk görülmə15 okt 2025

Necə düzəltmək olar

Yeniləyin
  • Linux Linux0fa9303c4b9493727e0d3a6ac3729300e3013930, 37aed407496bf6de8910e588edb04d2435fa7011, 6eec67bfb25637f9b51e584cf59ddace59925bc8, ca4e51359608e1f29bf1f2c33c3ddf775b6b7ed1, 3664ae91b26d1fd7e4cee9cde17301361f4c89d5, 6b9fb82df8868dbe9ffea5874b8d35f951faedbb, b638c3fb0f163e69785ceddb3b434a9437878bec, 17c8d794527f01def0d1c8b7dc2d7b8d34fed0e6 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux51f3baad7de943780ce0c17bd7975df567dd6e14 ≤ v < 0fa9303c4b9493727e0d3a6ac3729300e3013930, 51f3baad7de943780ce0c17bd7975df567dd6e14 ≤ v < 37aed407496bf6de8910e588edb04d2435fa7011, 51f3baad7de943780ce0c17bd7975df567dd6e14 ≤ v < 6eec67bfb25637f9b51e584cf59ddace59925bc8, 51f3baad7de943780ce0c17bd7975df567dd6e14 ≤ v < ca4e51359608e1f29bf1f2c33c3ddf775b6b7ed1, 51f3baad7de943780ce0c17bd7975df567dd6e14 ≤ v < 3664ae91b26d1fd7e4cee9cde17301361f4c89d5, 51f3baad7de943780ce0c17bd7975df567dd6e14 ≤ v < 6b9fb82df8868dbe9ffea5874b8d35f951faedbb, 51f3baad7de943780ce0c17bd7975df567dd6e14 ≤ v < b638c3fb0f163e69785ceddb3b434a9437878bec, 51f3baad7de943780ce0c17bd7975df567dd6e14 ≤ v < 17c8d794527f01def0d1c8b7dc2d7b8d34fed0e6, 4.120fa9303c4b9493727e0d3a6ac3729300e3013930, 37aed407496bf6de8910e588edb04d2435fa7011, 6eec67bfb25637f9b51e584cf59ddace59925bc8, ca4e51359608e1f29bf1f2c33c3ddf775b6b7ed1, 3664ae91b26d1fd7e4cee9cde17301361f4c89d5, 6b9fb82df8868dbe9ffea5874b8d35f951faedbb, b638c3fb0f163e69785ceddb3b434a9437878bec, 17c8d794527f01def0d1c8b7dc2d7b8d34fed0e6

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-2025-39985 · Linux · Dark Radar