CVE-2024-31076

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: genirq/cpuhotplug, x86/vector: CPU offline zamanı vektor sızmasının qarşısının alınması IRQD_MOVE_PCNTXT-nin olmaması procfs vasitəsilə kəsim affinitetinin yenidən konfiqurasiyasının dərhal təsir göstərməsinə mane olur. Bunun əvəzinə, dəyişiklik kəsimin orijinal CPU-da növbəti dəfə tetiklənməsinə qədər təxirə salınır. Kəsim orijinal CPU-da növbəti dəfə tetikləndikdə, yeni affinitet __irq_move_irq() daxilində tətbiq edilir. Yeni CPU-dan bir vektor ayrılır, lakin orijinal CPU-dakı köhnə vektor qalır və dərhal geri qaytarılmır. Bunun əvəzinə, apicd->move_in_progress qeyd olunur və geri qaytarma prosesi kəsimin yeni CPU-da növbəti tetiklənməsinə qədər gecikdirilir. Kəsimin yeni CPU-da növbəti tetiklənməsi zamanı, irq_complete_move() funksiyası, əgər köhnə CPU hələ də aktivdirsə (online), onun vector_cleanup siyahısına tapşırıq əlavə edir. Sonradan, köhnə CPU-dakı taymer öz vector_cleanup siyahısını nəzərdən keçirərək köhnə vektorları geri qaytarır. Lakin, kəsim yeni CPU-da yenidən tetiklənməzdən əvvəl köhnə CPU-nun deaktiv olması (outgoing) halında nadir bir ssenari yaranır. Bu halda, köhnə apicd->prev_vector-u geri qaytarmaq üçün deaktiv olan CPU-da irq_force_complete_move() çağırılmır, çünki kəsim hazırda həmin CPU ilə affinite deyil və irq_needs_fixup() false qaytarır. Hətta daha sonra yeni CPU-da __vector_schedule_cleanup() çağırılsa belə, o, apicd->prev_vector-u geri qaytarmır; bunun əvəzinə, sadəcə həm apicd->move_in_progress, həm də apicd->prev_vector dəyərlərini 0-a sıfırlayır. Nəticədə, vektor vector_matrix-də geri qaytarılmamış şəkildə qalır ki, bu da CPU vektor sızmasına səbəb olur. Bu problemi həll etmək üçün, əgər kəsim hazırda və ya əvvəllər deaktiv olan CPU ilə affinite idisə, apicd->prev_vector-u geri qaytarmaq məqsədilə irq_force_complete_move() çağırışını irq_needs_fixup() çağırışından əvvələ gətirin. Əlavə olaraq, xəbərdarlıq mesajından sonra __vector_schedule_cleanup() daxilində də vektoru geri qaytarın, baxmayaraq ki, nəzəri cəhətdən apicd->prev_cpu-nun offline CPU-ya işarə etdiyi halda apicd->move_in_progress görülməməlidir.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc21 iyn 2024
İlk görülmə21 iyn 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel4.19.316, 5.4.278, 5.10.219, 5.15.161, 6.1.93, 6.6.33, 6.9.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel4.13 ≤ v < 4.19.316, 4.20 ≤ v < 5.4.278, 5.5 ≤ v < 5.10.219, 5.11 ≤ v < 5.15.161, 5.16 ≤ v < 6.1.93, 6.2 ≤ v < 6.6.33, 6.7 ≤ v < 6.9.44.19.316, 5.4.278, 5.10.219, 5.15.161, 6.1.93, 6.6.33, 6.9.4

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