CVE-2022-49264
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: exec: argv boş olduqda tək bir boş simvol silsiləsinin məcburi istifadəsi Ariadne Conill-in sözləri ilə[1]: "Bir neçə digər əməliyyat sistemlərində execve(2) funksiyasının ikinci arqumentinin proqramın adı olması sərt tələbdir və beləliklə, argc < 1 ssenarisinə yol verilmir. POSIX 2017 də bu davranışı tövsiyə edir, lakin bu, açıq şəkildə tələb olunmur[2]: arg0 arqumenti, exec funksiyalarından biri vasitəsilə başladılan proseslə əlaqəli olan fayl adına uyğun simvol silsiləsinə işarə etməlidir. ... Maraqlıdır ki, Michael Kerrisk 2008-ci ildə bu barədə problem açmışdı[3], lakin həmin vaxt bu problemin həllini dəstəkləmək üçün konsensus yaranmamışdı. Ümid edirik ki, indi CVE-2021-4034 bu xətanın shellcode daxilində praktiki istismarını[4] göstərdiyi üçün biz bunu yenidən nəzərdən keçirə bilərik. Bu məsələ KSPP problem izləyicisində[5] izlənilir." İlkin kod axtarışları[6][7] əsasən künc hal testlərini ortaya çıxarsa da, sadəcə argv == NULL (və ya dərhal sonlandırılmış göstərici siyahısı) hallarını rədd etməyə çalışmaq mövcud istifadəçi sahəsi (userspace) proqramlarında tezliklə xətalara səbəb olmağa başladı[8]. Növbəti ən yaxşı yanaşma, argv-yə tək bir boş simvol silsiləsini məcburi şəkildə yerləşdirmək və argc-ni buna uyğunlaşdırmaqdır. argc == 0 şərtindən asılı olan proqramların sayı, execve funksiyasını NULL argv ilə çağıranların sayından daha az görünür. bprm_stack_limits() funksiyasında əlavə stek sahəsini nəzərə alın. argc == 0 olduqda boş simvol silsiləsini yerləşdirin (və argc = 1 olaraq təyin edin). İstifadəçi sahəsinin bu dəyişiklik haqqında məlumatlanması üçün müvafiq hal barədə xəbərdarlıq edin: process './argc0' launched './argc0' with NULL argv: empty string added Əlavə olaraq, nüvə axınları (kernel threads) üçün WARN() istifadə edin və NULL argv istifadəsini rədd edin. [1] https://lore.kernel.org/lkml/[email protected]/ [2] https://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html [3] https://bugzilla.kernel.org/show_bug.cgi?id=8408 [4] https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt [5] https://github.com/KSPP/linux/issues/176 [6] https://codesearch.debian.net/search?q=execve%5C+*%5C%28%5B%5E%2C%5D%2B%2C+*NULL&literal=0 [7] https://codesearch.debian.net/search?q=execlp%3F%5Cs*%5C%28%5B%5E%2C%5D%2B%2C%5Cs*NULL&literal=0 [8] https://lore.kernel.org/lkml/20220131144352.GE16385@xsang-OptiPlex-9020/
Necə düzəltmək olar
- linux linux_kernel4.9.317, 4.14.282, 4.19.246, 5.4.197, 5.10.110, 5.15.33, 5.16.19, 5.17.2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | v < 4.9.317, 4.10 ≤ v < 4.14.282, 4.15 ≤ v < 4.19.246, 4.20 ≤ v < 5.4.197, 5.5 ≤ v < 5.10.110, 5.11 ≤ v < 5.15.33, 5.16 ≤ v < 5.16.19, 5.17 ≤ v < 5.17.2 | 4.9.317, 4.14.282, 4.19.246, 5.4.197, 5.10.110, 5.15.33, 5.16.19, 5.17.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.
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.