CVE-2026-72342
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net/mlx5e: HV VHCA stats agent qeydiyyatı zamanı yaranan yarış vəziyyətinin (race condition) düzəldilməsi mlx5e_hv_vhca_stats_create() funksiyası stats agentini mlx5_hv_vhca_agent_create() vasitəsilə qeydiyyata alır. Köməkçi funksiya agenti agents_lock altında hv_vhca->agents[type]-da dərc edir və mlx5e-yə geri dönməzdən əvvəl dərhal HV VHCA iş növbəsində (workqueue) asinxron idarəetmə etibarsızlaşdırmasını təyin edir. Asinxron etibarsızlaşdırma idarəetmə agentinin invalidate callback funksiyasını çağırır, həmin funksiya hipervizor idarəetmə blokunu oxuyur və əmri mlx5e_hv_vhca_stats_control()-ə ötürür. Həmin callback ya: - cancel_delayed_work_sync(&priv->stats_agent.work) funksiyasını çağıra bilər, və ya - queue_delayed_work(priv->wq, &sagent->work, sagent->delay) funksiyasını çağıra bilər. Lakin, delayed_work və priv->stats_agent.agent yalnız mlx5_hv_vhca_agent_create() mlx5e-yə geri döndükdən sonra başladılır: agent = mlx5_hv_vhca_agent_create(...); /* dərc + etibarsızlaşdırma */ ... priv->stats_agent.agent = agent; /* çox gecdir */ INIT_DELAYED_WORK(&priv->stats_agent.work, ...); /* çox gecdir */ Əgər asinxron idarəetmə yolu yuxarıdakı iki mənimsətmədən əvvəl işləyərsə, bu aşağıdakılara səbəb ola bilər: - timer.function hissəsi NULL olan başlatılmamış delayed_work üzərində əməliyyat aparmaq. queue_delayed_work() şərtsiz olaraq add_timer() funksiyasını çağırır, buna görə də taymer bitdikdə taymer softirq NULL funksiya göstəricisini çağırır. - Taymer artıq taymer çarxına (timer wheel) əlavə edilmiş halda, sonradan INIT_DELAYED_WORK() vasitəsilə onu yenidən başlatmaq, bu isə hlist strukturunu korlayır (əvvəlki bucket düyünü hələ də bu girişə işarə edərkən entry.pprev təmizlənir). - İşçi (worker) nəhayət işə düşdükdə, mlx5e_hv_vhca_stats_work() sagent->agent (NULL) dəyərini oxuyur və mlx5_hv_vhca_agent_write() daxilində ona müraciət edir (dereference). Bu problem aşağıdakılarla düzəldilmişdir: - mlx5_hv_vhca_agent_create() çağırılmazdan əvvəl priv->stats_agent.work başladılır, beləliklə, idarəetmə callback-i onu müşahidə etdikdə iş həmişə etibarlı vəziyyətdə olur. - mlx5_hv_vhca_agent_create() funksiyasına struct mlx5_hv_vhca_agent **ctx_update çıxış parametri əlavə edilir. Köməkçi funksiya agent göstəricisini hv_vhca->agents[]-da dərc etməzdən və agents_update axınını tetikleməzdən əvvəl *ctx_update-ə yazır, beləliklə, həmin axından sonrakı istənilən callback artıq etibarlı priv->stats_agent.agent dəyərini görür. Bu, idarəetmə callback-inin agentin başladılmasına iştirak etməsinin qarşısını alır. Eyni zamanda, işçi ilə CPU-lar arası giriş üçün priv->stats_agent.agent-ə READ_ONCE()/WRITE_ONCE() ilə müraciət edilir və agent_create() uğursuz olduqda priv->stats_agent.buf təmizlənir.
Necə düzəltmək olar
- Linux Linuxb0fd6d3bb06182f19f3b59a53f57b5098b99048a, 24c77044cdfcf5b8b2e9f3b620d8b9aa392d9add, e8fc3304cb67fb1d7d11ff9ef9abd5fb64e7e1d5, 60fddda7207d81fea71463abd403f0b10f74f2e1, f5677797b094c3ec5fb350eb8ea7710b88a3d018, 89b25b5f46f488ea3b29b3444864c76944c9075b və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | cef35af34d6dc3792333075115c7deb7062b6e18 ≤ v < b0fd6d3bb06182f19f3b59a53f57b5098b99048a, cef35af34d6dc3792333075115c7deb7062b6e18 ≤ v < 24c77044cdfcf5b8b2e9f3b620d8b9aa392d9add, cef35af34d6dc3792333075115c7deb7062b6e18 ≤ v < e8fc3304cb67fb1d7d11ff9ef9abd5fb64e7e1d5, cef35af34d6dc3792333075115c7deb7062b6e18 ≤ v < 60fddda7207d81fea71463abd403f0b10f74f2e1, cef35af34d6dc3792333075115c7deb7062b6e18 ≤ v < f5677797b094c3ec5fb350eb8ea7710b88a3d018, cef35af34d6dc3792333075115c7deb7062b6e18 ≤ v < 89b25b5f46f488ea3b29b3444864c76944c9075b, 5.4 | b0fd6d3bb06182f19f3b59a53f57b5098b99048a, 24c77044cdfcf5b8b2e9f3b620d8b9aa392d9add, e8fc3304cb67fb1d7d11ff9ef9abd5fb64e7e1d5, 60fddda7207d81fea71463abd403f0b10f74f2e1, f5677797b094c3ec5fb350eb8ea7710b88a3d018, 89b25b5f46f488ea3b29b3444864c76944c9075b |
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.