CVE Database›CVE-2022-49814

CVE-2022-49814

kernel: kcm: close race conditions on sk_receive_queue

Loading…

Severity

Unknown

Red Hat Product Security

—

CVSS

Review impact separately from score.

Published · May 1, 2025

Updated · October 30, 2026

Description

In the Linux kernel, the following vulnerability has been resolved:

kcm: close race conditions on sk_receive_queue

sk->sk_receive_queue is protected by skb queue lock, but for KCM sockets its RX path takes mux->rx_lock to protect more than just skb queue. However, kcm_recvmsg() still only grabs the skb queue lock, so race conditions still exist.

We can teach kcm_recvmsg() to grab mux->rx_lock too but this would introduce a potential performance regression as struct kcm_mux can be shared by multiple KCM sockets.

So we have to enforce skb queue lock in requeue_rx_msgs() and handle skb peek case carefully in kcm_wait_data(). Fortunately, skb_recv_datagram() already handles it nicely and is widely used by other sockets, we can just switch to skb_recv_datagram() after getting rid of the unnecessary sock lock in kcm_recvmsg() and kcm_splice_read(). Side note: SOCK_DONE is not used by KCM sockets, so it is safe to get rid of this check too.

I ran the original syzbot reproducer for 30 min without seeing any issue.

Statement

This vulnerability does not impact supported Red Hat Enterprise Linux releases because the Kernel Connection Multiplexor (KCM) subsystem is not enabled or compiled into default distributions. On systems where KCM is active, concurrent datagram processing on multiplexed sockets could induce a race condition, potentially leading to kernel memory corruption or a local denial of service. Because the necessary networking protocol support is not built into Red Hat enterprise kernels, standard deployments are unaffected.

Mitigation

No mitigation is specified in collected source.

CVSS / CWE

CWE not specified