CVE-2023-52854

Yüksək

Təsvir

Linux kernelində aşağıdakı zəiflik aradan qaldırılıb: padata: padata_free_shell() funksiyasında refcnt ilə işləmə düzəldilib Yüksək yüklənmə şəraitində arm64 mühitində LTP-də pcrypt_aead01 testi sistemdə UAF (Use-After-Free — istifadədən sonra azad edilmiş yaddaşa müraciət) problemlərinə səbəb ola bilər. pcrypt_aead01 funksiya çağırışının uzun təhlilinə görə, problemi sadələşdirilmiş modeldən istifadə edərək təsvir edəcəyəm: Tutaq ki, `user_function` adlı padata istifadəçisi var və o, `serial()` çağırıldıqdan sonra `padata_free_shell` çağırılmasını tələb edən padata tələbinə riayət edir, aşağıdakı kodda göstərildiyi kimi: ```c struct request { struct padata_priv padata; struct completion *done; }; void parallel(struct padata_priv *padata) { do_something(); } void serial(struct padata_priv *padata) { struct request *request = container_of(padata, struct request, padata); complete(request->done); } void user_function() { DECLARE_COMPLETION(done) padata->parallel = parallel; padata->serial = serial; padata_do_parallel(); wait_for_completion(&done); padata_free_shell(); } ``` Uyğun padata.c faylında aşağıdakı kod var: ```c static void padata_serial_worker(struct work_struct *serial_work) { ... cnt = 0; while (!list_empty(&local_list)) { ... padata->serial(padata); cnt++; } local_bh_enable(); if (refcount_sub_and_test(cnt, &pd->refcnt)) padata_free_pd(pd); } ``` Sistemin yüksək yüklənməsi və bu anda icra olunmamış softirq-lərin yığılması səbəbindən padata-da `local_bh_enable()` adətən olduğundan daha uzun icra olunur. Sonradan `pd->refcnt`-ə müraciət edildikdə, `pd` artıq `padata_free_shell()` tərəfindən azad edilib, nəticədə `pd->refcnt` ilə bağlı UAF problemi yaranır. Düzəliş sadədir: `padata_free_shell` funksiyasında `padata_free_pd` çağırışından əvvəl `refcount_dec_and_test` əlavə edilməlidir.

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

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel3.17, 4.5, 4.10, 4.15, 4.20, 5.5, 5.10.201, 5.15.139, 6.1.63, 6.5.12, 6.6.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel3.16.84 ≤ v < 3.17, 4.4.215 ≤ v < 4.5, 4.9.215 ≤ v < 4.10, 4.14.172 ≤ v < 4.15, 4.19.103 ≤ v < 4.20, 5.4.19 ≤ v < 5.5, 5.5.3 ≤ v < 5.10.201, 5.11 ≤ v < 5.15.139, 5.16 ≤ v < 6.1.63, 6.2 ≤ v < 6.5.12, 6.6 ≤ v < 6.6.23.17, 4.5, 4.10, 4.15, 4.20, 5.5, 5.10.201, 5.15.139, 6.1.63, 6.5.12, 6.6.2

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