CVE-2025-37865

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: net: dsa: mv88e6xxx: VLAN-lar silinərkən və MST dəstəklənmədikdə -ENOENT xətasının düzəldilməsi Russell King bildirir ki, ZII dev rev B cihazında istifadəçi portundan körpü VLAN-ının silinməsi -ENOENT xətası ilə uğursuz olur: https://lore.kernel.org/netdev/[email protected]/ Bu, mv88e6xxx_port_vlan_leave() -> mv88e6xxx_mst_put() funksiyasından qaynaqlanır; həmin funksiya &chip->msts daxilində SID ilə əlaqəli olan MST yazısını tapmağa çalışır, lakin tapa bilmir və nəticədə -ENOENT qaytarır. Lakin biz bilirik ki, bu çip ümumiyyətlə MST-ni dəstəkləmir, buna görə də bu təəccüblü deyil. Sual ondadır ki, niyə mv88e6xxx_mst_put() funksiyasındakı yoxlama erkən çıxış etmir: if (!sid) return 0; Cavab sadə görünür: sid dəyişəni vlan.sid-dən gəlir və ehtimal olunur ki, o, əvvəllər mv88e6xxx_vtu_get() tərəfindən doldurulub. Lakin bəzi chip->info->ops->vtu_getnext() implementasiyaları vlan.sid-i doldurmur, məsələn, mv88e6185_g1_vtu_getnext()-ə baxın. Bu halda, daha sonra mv88e6xxx_port_vlan_leave() funksiyasında biz sadəcə stek yaddaşının qalıqları olan zibil bir sid-dən istifadə edirik. sid == 0 yoxlaması bütün qeyri-körpü VLAN və ya standart MSTI-yə yönləndirilmiş körpü VLAN hallarını əhatə edir. Bəzi chiplər üçün SID 0 etibarlıdır və mv88e6xxx_stu_setup() tərəfindən quraşdırılır. STU-nu dəstəkləməyən çip implicit olaraq yalnız bütün VLAN-ların standart MSTI-yə yönləndirilməsini dəstəkləyəcəkdi, ona görə də SID 0 etibarlı olmasa belə, vlan strukturunu sıfırla başlatmaq xətanı düzəltmək üçün kifayət edərdi, çünki vlan.sid == 0 yoxlaması artıq mövcuddur və eyni (doğru) davranışa səbəb olur. Kifayət edəcək digər variant mv88e6xxx_mst_put() daxilində, mv88e6xxx_mst_get()-də artıq mövcud olan yoxlamaya simmetrik olaraq mv88e6xxx_has_stu() yoxlamasını əlavə etmək olardı. Lakin bu yerləşdirmə o deməkdir ki, çağıran tərəf vlan.sid-i dereference etməli olacaq, bu isə onun başlanğıc dəyəri təyin edilməmiş yaddaşa müraciət etməsinə səbəb olacaq ki, bu da sonradan nəzərə alınmasa belə, yaxşı bir yanaşma deyil. Beləliklə, həm sid == 0 təsadüfünə güvənməmək, həm də müvəqqəti olaraq müraciət edilə bilən başlanğıc dəyəri təyin edilməmiş struktur sahələrinin qarşısını almaq üçün hər iki modifikasiyanı həyata keçiririk.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc9 may 2025
İlk görülmə9 may 2025

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.1.135, 6.6.88, 6.12.25, 6.14.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.18 ≤ v < 6.1.135, 6.2 ≤ v < 6.6.88, 6.7 ≤ v < 6.12.25, 6.13 ≤ v < 6.14.4, 6.156.1.135, 6.6.88, 6.12.25, 6.14.4
debian debian_linux11.0—

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