CVE-2025-21664

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: dm thin: get_first_thin funksiyasının rcu-safe list first funksiyasından istifadə etməsini təmin edin rculist.h sənədləri list_empty_rcu() funksiyasının olmamasını izah edir və proqramçıları RCU safe kodda list_empty() -> list_first() ardıcıllığına güvənməmək barədə xəbərdar edir. Bunun səbəbi hər iki funksiyanın siyahı başlığı üçün öz READ_ONCE() əməliyyatını yerinə yetirməsidir. Bu, belə bir vəziyyətə gətirib çıxara bilər ki, list_empty() düzgün siyahı elementini görsün, lakin növbəti list_first() dəyişiklikdən sonra siyahı başlığının vəziyyətinin fərqli görünüşünü görsün. dm-thin halında, müəllifin istehsalat serveri process_deferred_bios yolunda GP xətası səbəbindən çökmüşdür. Bu funksiya get_first_thin()-də düzgün siyahı başlığını görmüşdü, lakin daha sonra onu dereference edib thin_c-yə çevirdikdə, siyahı artıq boş olduğu və özünə istinad etdiyi üçün struct pool-un daxili hissəsini əldə etmişdir. Xəta baş verməzdən əvvəl, bu hadisənin baş verdiyi nüvə həm refcount_t-nin doymuş olması ilə bağlı xəbərdarlıq, həm də queued spinlock-da həddindən kənar cpuid girişinə görə UBSAN xətası çap etmişdir. Nəticədə alınan kdump araşdırıldıqda, digər bir axının (thread) thin_dtr-in synchronize_rcu funksiyasında səbirlə gözlədiyi görülmüşdür. thin_dtr çağırışı tam vaxtsız şəkildə thin_c-ni aktiv thins siyahısından çıxarmağı (və onun active_thins siyahısındakı sonuncu element olmasını) bacarmışdır ki, bu da çökümə səbəb olmuşdur. Xoşbəxtlikdən, buradakı həll yolu sadədir. get_first_thin() funksiyasını yalnız tək bir READ_ONCE() yerinə yetirən və siyahı artıq boş olduqda NULL qaytaran list_first_or_null_rcu() funksiyasından istifadə etmək üçün dəyişdirin. Bu, devicemapper test dəstinin silmə (delete) və dayandırma (suspend) üçün nəzərdə tutulmuş thin-provisioning testlərində yoxlanılmışdır və heç bir reqressiya müşahidə edilməmişdir.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc21 yan 2025
İlk görülmə21 yan 2025

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.4.290, 5.10.234, 5.15.177, 6.1.125, 6.6.72, 6.12.10 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel3.15.1 ≤ v < 5.4.290, 5.5 ≤ v < 5.10.234, 5.11 ≤ v < 5.15.177, 5.16 ≤ v < 6.1.125, 6.2 ≤ v < 6.6.72, 6.7 ≤ v < 6.12.10, 3.15, 6.135.4.290, 5.10.234, 5.15.177, 6.1.125, 6.6.72, 6.12.10

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