CVE-2024-56779

Kritik

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: nfsd: eyni vaxtda nfsd4_open baş verdikdə nfs4_openowner sızmasının düzəldilməsi Məcburi ayırma əməliyyatı (umount -f), bəzi fayllar açıq qaldığı üçün sonda uğursuz olsa belə, bütün rpc_task-ları sonlandırmağa çalışacaqdır. Nəticədə, bir proses faylı açmağa çalışdıqda, NFS serverinə potensial olaraq iki rpc_task göndərə bilər. NFS CLIENT thread1 thread2 open("file") ... nfs4_do_open _nfs4_do_open _nfs4_open_and_get_state _nfs4_proc_open nfs4_run_open_task /* rpc_task1 */ rpc_run_task rpc_wait_for_completion_task umount -f nfs_umount_begin rpc_killall_tasks rpc_signal_task rpc_task1 oyadılır və -512 qaytarır _nfs4_do_open // while dövrü ... nfs4_run_open_task /* rpc_task2 */ rpc_run_task rpc_wait_for_completion_task Açma sorğusunu emal edərkən, nfsd əvvəlcə nfs4_openowner tapmağa və ya ayırmaqya çalışacaqdır. Əgər o, NFS4_OO_CONFIRMED kimi qeyd olunmamış nfs4_openowner tapsa, bu nfs4_openowner azad ediləcəkdir. Müştəridən serverə eyni faylı açmaq üçün eyni vaxtda iki rpc_task göndərilə bildiyi və iki nfsd nümunəsi paralel işləyə bildiyi üçün, bu vəziyyət ciddi yaddaş sızmasına səbəb ola bilər. Əlavə olaraq, /proc/fs/nfsd/threads faylına 0 yazıldıqda xəbərdarlıq veriləcəkdir. NFS SERVER nfsd1 nfsd2 echo 0 > /proc/fs/nfsd/threads nfsd4_open nfsd4_process_open1 find_or_alloc_open_stateowner // oo1, stateid1 ayrılır nfsd4_open nfsd4_process_open1 find_or_alloc_open_stateowner // oo1 tapılır, NFS4_OO_CONFIRMED olmadan release_openowner unhash_openowner_locked list_del_init(&oo->oo_perclient) // bu oo tapılmır // müştəridən, SIZMA!!! alloc_stateowner // oo2 ayrılır nfsd4_process_open2 init_open_stateid // oo1 ilə // stateid1 əlaqələndirilir, stateid1 SIZMA!!! nfs4_get_vfs_file // nfsd_file1 və nfsd_file_mark1 ayrılır // hamısı SIZMA!!! nfsd4_process_open2 ... write_threads ... nfsd_destroy_serv nfsd_shutdown_net nfs4_state_shutdown_net nfs4_state_destroy_net destroy_client __destroy_client // oo1 tapılmayacaq!!! nfsd_shutdown_generic nfsd_file_cache_shutdown kmem_cache_destroy nfsd_file_slab və nfsd_file_mark_slab üçün // xəta verir, çünki nfsd_file1 // və nfsd_file_mark1 // hələ də aktivdir ======================================================================= BUG nfsd_file (Not tainted): __kmem_cache_shutdown() zamanı nfsd_file-də obyektlər qalıb ----------------------------------------------------------------------- Slab 0xffd4000004438a80 objects=34 used=1 fp=0xff11000110e2ad28 flags=0x17ffffc0000240(workingset|head|node=0|zone=2|lastcpupid=0x1fffff) CPU: 4 UID: 0 PID: 757 Comm: sh Not tainted 6.12.0-rc6+ #19 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.1-2.fc37 04/01/2014 Call Trace: <TASK> dum ---truncated---

CiddilikKritik
CVSS9.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc8 yan 2025
İlk görülmə8 yan 2025
Zəiflik növüCWE-401CWE-401

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.4.287, 5.10.231, 5.15.174, 6.1.120, 6.6.64, 6.12.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernelv < 5.4.287, 5.5 ≤ v < 5.10.231, 5.11 ≤ v < 5.15.174, 5.16 ≤ v < 6.1.120, 6.2 ≤ v < 6.6.64, 6.7 ≤ v < 6.12.45.4.287, 5.10.231, 5.15.174, 6.1.120, 6.6.64, 6.12.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-56779 · Linux Kernel · Dark Radar