CVE-2022-49814

Source
https://cve.org/CVERecord?id=CVE-2022-49814
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-49814.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-49814
Downstream
Related
Published
2025-05-01T14:09:38.389Z
Modified
2026-03-20T12:22:29.352961Z
Summary
kcm: close race conditions on sk_receive_queue
Details

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

kcm: close race conditions on skreceivequeue

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

We can teach kcmrecvmsg() to grab mux->rxlock 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 requeuerxmsgs() and handle skb peek case carefully in kcmwaitdata(). Fortunately, skbrecvdatagram() already handles it nicely and is widely used by other sockets, we can just switch to skbrecvdatagram() after getting rid of the unnecessary sock lock in kcmrecvmsg() and kcmspliceread(). Side note: SOCKDONE 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.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49814.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
ab7ac4eb9832e32a09f4e8042705484d2fb0aad3
Fixed
22f6b5d47396b4287662668ee3f5c1f766cb4259
Fixed
d9ad4de92e184b19bcae4da10dac0275abf83931
Fixed
ce57d6474ae999a3b2d442314087473a646a65c7
Fixed
4154b6afa2bd639214ff259d912faad984f7413a
Fixed
f7b0e95071bb4be4b811af3f0bfc3e200eedeaa3
Fixed
bf92e54597d842da127c59833b365d6faeeaf020
Fixed
5121197ecc5db58c07da95eb1ff82b98b121a221

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-49814.json"