CVE-2022-49814
Təsvir
Linux kernelində aşağıdakı zəiflik həll edilmişdir: kcm: sk_receive_queue üzərində yarış vəziyyətləri bağlanır sk->sk_receive_queue skb növbəsinin kilidi ilə qorunur, lakin KCM soketləri üçün onun RX yolu yalnız skb növbəsindən daha çoxunu qorumaq üçün mux->rx_lock götürür. Bununla belə, kcm_recvmsg() hələ də yalnız skb növbəsinin kilidini götürür, buna görə də yarış vəziyyətləri hələ də mövcuddur. kcm_recvmsg()-ə mux->rx_lock-u da götürməyi öyrədə bilərik, lakin struct kcm_mux bir neçə KCM soketi tərəfindən paylaşıla bildiyi üçün bu, potensial məhsuldarlıq reqressiyasına səbəb olardı. Buna görə də requeue_rx_msgs()-də skb növbəsinin kilidini tətbiq etməli və kcm_wait_data()-da skb peek halını diqqətlə idarə etməliyik. Xoşbəxtlikdən, skb_recv_datagram() bunu artıq yaxşı idarə edir və digər soketlər tərəfindən geniş istifadə olunur, kcm_recvmsg() və kcm_splice_read()-də lazımsız sock kilidindən xilas olduqdan sonra sadəcə skb_recv_datagram()-a keçə bilərik. Yan qeyd: SOCK_DONE KCM soketləri tərəfindən istifadə olunmur, buna görə də bu yoxlamadan da xilas olmaq təhlükəsizdir. Orijinal syzbot reproducerini 30 dəqiqə heç bir problem görmədən işə saldım.
Necə düzəltmək olar
- linux linux_kernel4.14.300, 4.19.267, 5.4.225, 5.10.156, 5.15.80, 6.0.10 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 | 4.6 ≤ v < 4.14.300, 4.15 ≤ v < 4.19.267, 4.20 ≤ v < 5.4.225, 5.5 ≤ v < 5.10.156, 5.11 ≤ v < 5.15.80, 5.16 ≤ v < 6.0.10, 6.1 | 4.14.300, 4.19.267, 5.4.225, 5.10.156, 5.15.80, 6.0.10 |
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.