CVE-2026-72422
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: ksmbd: paralel SMB2 NEGOTIATE zamanı conn->preauth_info-nun use-after-free xətası düzəldildi conn->preauth_info, SMB2 NEGOTIATE idarəedicisi tərəfindən ayrılan və azad edilən, cavab göndərmə yolu tərəfindən oxunan ortaq bağlantı vəziyyətidir (struct preauth_integrity_info, kmalloc-96). smb2_handle_negotiate() funksiyası conn->preauth_info-nu ayırır və deassemble_neg_contexts() uğursuz olduqda onu kfree edərək NULL təyin edir. Həm ayırma, həm də azad etmə/NULL təyini bütün idarəedici gövdəsi boyunca saxlanılan ksmbd_conn_lock(conn) (bağlantının srv_mutex-i) altında baş verir. __handle_ksmbd_work()-nın send: blokundan çağırılan cavab göndərmə yolu smb3_preauth_hash_rsp(), conn_lock-u götürmədən conn->preauth_info-nu oxuyur və conn->preauth_info->Preauth_HashValue-ya müraciət edir (ksmbd_gen_preauth_integrity_hash() vasitəsilə). Müştəri eyni bağlantıda iki SMB2 NEGOTIATE sorğusu göndərdikdə, bir işçi (worker) uğursuz negotiate yolunda conn->preauth_info-nu azad edə bilər, eyni zamanda paralel göndərmə yolu işçisi onu oxuya bilər ki, bu da slab use-after-free oxuma xətasına səbəb olur (KASAN tərəfindən təsdiqlənib). Göndərmə yolu oxuması conn->preauth_info-nun NULL olub-olmadığını yoxlayırdı, lakin NULL yoxlaması ilə müraciət arasında baş verən azad etmə əməliyyatı ilə yarış (race condition) yaranırdı, buna görə də yalnız NULL mühafizəsi boşluğu bağlamırdı. smb3_preauth_hash_rsp()-dəki NEGOTIATE budağına aid oxuma prosesi ksmbd_conn_lock(conn) altında ardıcıl hala gətirildi və kilidin daxilində conn->preauth_info yenidən yoxlanıldı. Negotiate idarəedicisi özünün kfree + NULL təyini əməliyyatları boyunca conn_lock-u saxladığı üçün, həmçinin conn_lock-u götürən oxuyucu ya ayırmadan tam öncə, ya da NULL təyinatından tam sonra işləyir və heç vaxt azad edilmiş lakin hələ NULL edilməmiş göstəricini müşahidə etmir. ksmbd_gen_preauth_integrity_hash() özü heç bir kilidi götürmür (o, yalnız bufer üzərində SHA-512 hesablayır), buna görə də kilid sıralamasında inversiya yaranmır və conn_lock bu göndərmə yolunda təhlükəsiz olan yuxulabilən (sleepable) mutexdir (onun artıq şəbəkə I/O əməliyyatlarını yerinə yetirdiyi üçün).
Necə düzəltmək olar
- Linux Linuxc7bef84740d1d57848c74f6f5b996606e43ea4fe, d0a469122e7bf8338fec1949fb1e8e1290ed8caa, 7470511d085af1c7a043a60e53d52b512d5a10b1, 16a1ecf39c217e3d164bd32ef2a4f650abc067fa, 77bb0bbfcc4e777ca653174689e5e363f8ee63d1, 1c89da3baa2b1f269178afa87dc30479b8535776, 0c054227479ed7e36ebccb3a558bc0ef698264f6, 5.15.212, 5.19, 5.20 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | dd4e4c811898410e6a3ae3b63207b7c542860907 ≤ v < c7bef84740d1d57848c74f6f5b996606e43ea4fe, aa7253c2393f6dcd6a1468b0792f6da76edad917 ≤ v < d0a469122e7bf8338fec1949fb1e8e1290ed8caa, aa7253c2393f6dcd6a1468b0792f6da76edad917 ≤ v < 7470511d085af1c7a043a60e53d52b512d5a10b1, aa7253c2393f6dcd6a1468b0792f6da76edad917 ≤ v < 16a1ecf39c217e3d164bd32ef2a4f650abc067fa, aa7253c2393f6dcd6a1468b0792f6da76edad917 ≤ v < 77bb0bbfcc4e777ca653174689e5e363f8ee63d1, aa7253c2393f6dcd6a1468b0792f6da76edad917 ≤ v < 1c89da3baa2b1f269178afa87dc30479b8535776, aa7253c2393f6dcd6a1468b0792f6da76edad917 ≤ v < 0c054227479ed7e36ebccb3a558bc0ef698264f6, 8a8315a5960bd2b5ffc75f44fc089e57c3b17c44, ff20f1875889dbe4a67c9298e609d7c88cf6456d, 5.15.61 ≤ v < 5.15.212, 5.18.18 ≤ v < 5.19, 5.19.2 ≤ v < 5.20, 6.0 | c7bef84740d1d57848c74f6f5b996606e43ea4fe, d0a469122e7bf8338fec1949fb1e8e1290ed8caa, 7470511d085af1c7a043a60e53d52b512d5a10b1, 16a1ecf39c217e3d164bd32ef2a4f650abc067fa, 77bb0bbfcc4e777ca653174689e5e363f8ee63d1, 1c89da3baa2b1f269178afa87dc30479b8535776, 0c054227479ed7e36ebccb3a558bc0ef698264f6, 5.15.212, 5.19, 5.20 |
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.
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.