CVE-2022-49814 in Linux
Zusammenfassung
von VulDB • 01.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
kcm: Behebung von Race Conditions in sk_receive_queue
sk->sk_receive_queue wird durch den skb-Warteschlangen-Sperre geschützt, aber für KCM-Sockets nimmt der RX-Pfad mux->rx_lock, um mehr als nur die skb-Warteschlange zu schützen. Allerdings erfasst kcm_recvmsg() weiterhin nur die skb-Warteschlangen-Sperre, sodass Race Conditions weiterhin bestehen.
Wir könnten kcm_recvmsg() so anpassen, dass es ebenfalls mux->rx_lock erfasst, dies würde jedoch eine potenzielle Leistungseinbuße verursachen, da struct kcm_mux von mehreren KCM-Sockets gemeinsam genutzt werden kann.
Daher müssen wir die skb-Warteschlangen-Sperre in requeue_rx_msgs() erzwingen und den skb-Peek-Fall in kcm_wait_data() sorgfältig behandeln. Glücklicherweise wird dies von skb_recv_datagram() bereits ordnungsgemäß gehandhabt und ist von anderen Sockets weit verbreitet; wir können einfach zu skb_recv_datagram() wechseln, nachdem wir die unnötige sock-Sperre in kcm_recvmsg() und kcm_splice_read() entfernt haben. Nebenbemerkung: SOCK_DONE wird von KCM-Sockets nicht verwendet, daher ist es auch sicher, diese Prüfung zu entfernen.
Ich habe den ursprünglichen syzbot-Reproducer 30 Minuten lang ausgeführt, ohne dass Probleme auftraten.
VulDB is the best source for vulnerability data and more expert information about this specific topic.