CVE-2025-40048

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: uio_hv_generic: İnterrupt mask-ın idarə olunmasını istifadəçi sahəsinə (userspace) həvalə edin uio_hv_generic drayverində interrupt mask-ın standart olaraq təyin edilməsi məntiqi silinsin, çünki interrupt mask dəyəri tamamilə istifadəçi sahəsi tərəfindən idarə olunmalıdır. Əgər mask biti drayver tərəfindən, eyni zamanda istifadəçi rejiminin ring üzərində əməliyyat apardığı vaxt dəyişdirilərsə, mask biti təmizlənməli olduğu halda təyin edilə bilər və istifadəçi rejimi drayveri bir interrupt-u qaçıracaq ki, bu da sistemin donmasına (hang) səbəb olacaqdır. Məsələn - drayver daxil olan ring buffer interrupt mask-ını 1-ə təyin etdikdə, host UIO VMBus kanalı üzərindən qonağa (guest) interrupt göndərmir. Lakin mask-ın təyin edilməsi host-un daxil olan ring buffer-ə mesaj yerləşdirməsinə mane olmur. Tutaq ki, belə baş verir: host ring buffer-ə mesaj yerləşdirir, lakin interrupt göndərmir. Sonradan, qonaqdakı istifadəçi sahəsi kodu daxil olan ring buffer interrupt mask-ını 0-a təyin edərək "Mən interrupt-lara hazıram" bildirir. Daha sonra istifadəçi sahəsi kodu interrupt gözləmək üçün pread() funksiyasını çağırır. Bu zaman iki haldan biri baş verir: * Host heç vaxt digər mesajı göndərmir. Beləliklə, pread() sonsuz müddət gözləyir. * Host digər mesajı göndərir. Lakin ring buffer-də artıq mesaj olduğu üçün o, interrupt yaratmır. Bu düzgün davranışdır, çünki host yalnız daxil olan ring buffer boş haldan boş olmayan hala keçdikdə interrupt göndərməlidir. Boş olmayan ring buffer-ə əlavə mesajın əlavə edilməsi qonaqda interrupt yaratmamalıdır. Qonaq pread()-də gözlədiyi və ring buffer-dən mesajları çıxarmadığı üçün pread() sonsuz müddət gözləyir. Əgər interrupt mask-ının 0-a təyin edilməsini gecikdirsək, bunu hv_fcopy_uio_daemon-da asanlıqla təkrar etmək olar. Eynilə, əgər hv_uio_channel_cb() interrupt_mask-ı 1-ə təyin edirsə, yarış şəraiti (race condition) yaranır. İstifadəçi sahəsi daxil olan ring buffer-i boşaltdıqdan sonra, lakin hələ interrupt_mask-ı 0-a təyin etməmişdən əvvəl, host ring buffer-ə başqa bir mesaj yerləşdirə bilər, lakin interrupt göndərməzdi. Beləliklə, növbəti pread() donardı. Bunları, interrupt_mask-ın dəyişdirildiyi bütün nümunələri silərək düzəldin, lakin istifadəçi sahəsinin /dev/uioX faylına 0/1 yazmaqla interrupt mask-ı idarə etməsini təmin etmək üçün set_event() funksiyasındakı hissəni dəyişməzdən saxlayın.

CiddilikYüksək
CVSS7.5
İstismar ehtimalı—
MəhsulLinux
Dərc28 okt 2025
İlk görülmə28 okt 2025

Necə düzəltmək olar

Yeniləyin
  • Linux Linux540aac117eaea5723cef5e4cbf3035c4ac654d92, 65d40acd911c7011745cbbd2aaac34eb5266d11e, a44f61f878f32071d6378e8dd7c2d47f9490c8f7, 01ce972e6f9974a7c76943bcb7e93746917db83a, 2af39ab5e6dc46b835a52e80a22d0cad430985e3, 37bd91f22794dc05436130d6983302cb90ecfe7e, e29587c07537929684faa365027f4b0d87521e1b, b15b7d2a1b09ef5428a8db260251897405a19496 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux95096f2fbd10186d3e78a328b327afc71428f65f ≤ v < 540aac117eaea5723cef5e4cbf3035c4ac654d92, 95096f2fbd10186d3e78a328b327afc71428f65f ≤ v < 65d40acd911c7011745cbbd2aaac34eb5266d11e, 95096f2fbd10186d3e78a328b327afc71428f65f ≤ v < a44f61f878f32071d6378e8dd7c2d47f9490c8f7, 95096f2fbd10186d3e78a328b327afc71428f65f ≤ v < 01ce972e6f9974a7c76943bcb7e93746917db83a, 95096f2fbd10186d3e78a328b327afc71428f65f ≤ v < 2af39ab5e6dc46b835a52e80a22d0cad430985e3, 95096f2fbd10186d3e78a328b327afc71428f65f ≤ v < 37bd91f22794dc05436130d6983302cb90ecfe7e, 95096f2fbd10186d3e78a328b327afc71428f65f ≤ v < e29587c07537929684faa365027f4b0d87521e1b, 95096f2fbd10186d3e78a328b327afc71428f65f ≤ v < b15b7d2a1b09ef5428a8db260251897405a19496, 4.10540aac117eaea5723cef5e4cbf3035c4ac654d92, 65d40acd911c7011745cbbd2aaac34eb5266d11e, a44f61f878f32071d6378e8dd7c2d47f9490c8f7, 01ce972e6f9974a7c76943bcb7e93746917db83a, 2af39ab5e6dc46b835a52e80a22d0cad430985e3, 37bd91f22794dc05436130d6983302cb90ecfe7e, e29587c07537929684faa365027f4b0d87521e1b, b15b7d2a1b09ef5428a8db260251897405a19496

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