CVE-2026-43073
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: x86-64: yanlış adlandırılmış '__copy_user_nocache()' funksiyasının adı dəyişdirildi Müxtəlif tarixi səbəblərdən bu funksiya pis adlandırma nümunəsi idi. Funksiyanın keşlənməmiş istifadəçi kopyalaması olduğu iddia edilirdi. Lakin o, əslində bunlardan heç biri deyil. Bu, təyinat yeri üçün non-temporal store-lardan istifadə edən (lakin mənbə üçün etməyən) və həm mənbə, həm də təyinat yerinə girişlər üçün istisna idarəetməsini həyata keçirən xüsusi yaddaş kopyalama proseduru idi. Həmçinin qeyd edək ki, düzülməmiş (unaligned) hədəflər üçün işləsə də, hər hansı düzülməmiş hissələr (istər başlanğıcdakı, istərsə də sondakı) non-temporal store-lardan istifadə etməyəcək, çünki x86-da yalnız sözlər (words) və dördlük sözlər (quadwords) non-temporal ola bilər. İstisna idarəetməsi o deməkdir ki, o, istifadəçi sahəsi girişləri üçün istifadə edilə *bilər*, lakin təkbaşına yox - onun ətrafında bütün normal "istifadəçi sahəsi girişini başlat" məntiqi olmalıdır. Lakin adətən istifadəçi sahəsi girişi mənbə olurdu, non-temporal təyinat yeri yox. Bunun orijinal məqsədi belə idi: təyinat yeri maşın yoxlama istisnalarını (machine check exceptions) sinxron şəkildə tutmaq və onları düzgün idarə etmək üçün non-temporal store-lara ehtiyacı olan bəzi kövrək davamlı yaddaş hədəfi idi. Beləliklə, həmin qeyri-təsviri ad yaranmışdı: bir istifadə halı istifadəçi sahəsindən keşlənməmiş kernel buferinə kopyalama idi. Lakin mövcud istifadəçilər həm bu nəzərdə tutulmuş istifadə halunun, həm də bunu sadəcə performans artımı kimi tətbiq edən bir neçə təsadüfi drayverin qarışığıdır. Bu təsadüfi drayverlərin bəziləri daha sonra istisna idarəetməsini heç önəmsəmədən, *yalnız* non-temporal təyinat yeri üçün kernel kopyalamalarını etmək məqsədilə istifadəçi kopyalama versiyasından (STAC/CLAC və s. ilə birlikdə) aktiv şəkildə yanlış istifadə etmişlər. Onu daha məntiqli hala gətirmək üçün ilk kiçik addım olaraq adını dəyişin və prototipi daha normal formaya salın: çağırıcı lazımi çevrilməni etmədikcə o, istifadəçi göstəricisini (user pointer) qəbul etmir və arqument ölçüsü tam size_t-dir (o, yenə də birdəfəyə 4GB-dan çox kopyalamayacaq, lakin çağırıcıda ölçü arqumentini səssiz şəkildə kəsmək üçün heç bir səbəb yoxdur). Sonda, bu interfeysin əslində istifadəçi kopyalaması olmadığına baxmayaraq, onun istifadəçi kopyalama versiyasından (STAC/CLAC və s. ilə birlikdə) yanlış istifadə edən NTB kodunda artıq düzgün adlandırılmış bu funksiyadan istifadə edin.
Necə düzəltmək olar
- linux linux_kernel6.12.83, 6.18.24, 6.19.14, 7.0.1 və ya daha yeni versiya
- git.kernel.org/stable/c/14b9194db4a28421a4dbe5d6e519efbaa7c5f3cd
- git.kernel.org/stable/c/c6d4e0599e7e73abc04e2488dfeb7940c4039660
- git.kernel.org/stable/c/d187a86de793f84766ea40b9ade7ac60aabbb4fe
- git.kernel.org/stable/c/d993e1723aa2a085aa0d72e70ea889031fc225b4
- git.kernel.org/stable/c/efea91ad1729ff1853d7418e4d3bc27d085e72d0
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 4.2.1 ≤ v < 6.12.83, 6.13 ≤ v < 6.18.24, 6.19 ≤ v < 6.19.14, 7.0 ≤ v < 7.0.1, 4.2 | 6.12.83, 6.18.24, 6.19.14, 7.0.1 |
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.