CVE-2022-49973

skmsg: Fix wrong last sg check in sk_msg_recvmsg()

MEDIUM
5.5
CVSS Score
Published: June 18, 2025 at 11:00 AM UTC
Updated: June 17, 2026 at 05:19 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: skmsg: Fix wrong last sg check in sk_msg_recvmsg() Fix one kernel NULL pointer dereference as below: [ 224.462334] Call Trace: [ 224.462394] __tcp_bpf_recvmsg+0xd3/0x380 [ 224.462441] ? sock_has_perm+0x78/0xa0 [ 224.462463] tcp_bpf_recvmsg+0x12e/0x220 [ 224.462494] inet_recvmsg+0x5b/0xd0 [ 224.462534] __sys_recvfrom+0xc8/0x130 [ 224.462574] ? syscall_trace_enter+0x1df/0x2e0 [ 224.462606] ? __do_page_fault+0x2de/0x500 [ 224.462635] __x64_sys_recvfrom+0x24/0x30 [ 224.462660] do_syscall_64+0x5d/0x1d0 [ 224.462709] entry_SYSCALL_64_after_hwframe+0x65/0xca In commit 9974d37ea75f ("skmsg: Fix invalid last sg check in sk_msg_recvmsg()"), we change last sg check to sg_is_last(), but in sockmap redirection case (without stream_parser/stream_verdict/ skb_verdict), we did not mark the end of the scatterlist. Check the sk_msg_alloc, sk_msg_page_add, and bpf_msg_push_data functions, they all do not mark the end of sg. They are expected to use sg.end for end judgment. So the judgment of '(i != msg_rx->sg.end)' is added back here.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v ≥ 5.18.185.15.61 ≤ v < 5.15.665.18.18 ≤ v < 5.195.19.2 ≤ v < 5.19.81295dae30f30c3daa03005ed8958d44b17f037fd293c53b7dbf9073cbcc488f938bc053ff4caeec04674c0da448b546e390a981b819cd4af5cb16cf95.15.615.18.185.19.26.0 rc16.0 rc26.0 rc39974d37ea75f01b47d16072b5dad305bd8d23fcc
Vendor states this is fixed in 10ee118a1756141f8e9c87aa7344ed12b41630a8 (fixed)
Vendor states this is fixed in 583585e48d965338e73e1eb383768d16e0922d73 (fixed)
Vendor states this is fixed in de22cba333d8699ad77e79f862fe1320cb1284de (fixed)
Affected range stops below 5.15.66, so it looks safe — our inference, not a vendor statement
Affected range stops below 5.19, so it looks safe — our inference, not a vendor statement
Affected range stops below 5.19.8, so it looks safe — our inference, not a vendor statement

References (3)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/10ee118a1756141f8e9c87aa7344ed12b41630a8
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/583585e48d965338e73e1eb383768d16e0922d73
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/de22cba333d8699ad77e79f862fe1320cb1284de

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-476

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card