CVE-2024-26731

bpf, sockmap: Fix NULL pointer dereference in sk_psock_verdict_data_ready()

Medium · published April 3, 2024

CVSS v3.1
5.3
EPSS
1%
Percentile
57.1
In the wild
Unconfirmed
What it is

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

bpf, sockmap: Fix NULL pointer dereference in sk_psock_verdict_data_ready()

syzbot reported the following NULL pointer dereference issue [1]:

BUG: kernel NULL pointer dereference, address: 0000000000000000

[...]

RIP: 0010:0x0

[...]

Call Trace:

<TASK>

sk_psock_verdict_data_ready+0x232/0x340 net/core/skmsg.c:1230

unix_stream_sendmsg+0x9b4/0x1230 net/unix/af_unix.c:2293

sock_sendmsg_nosec net/socket.c:730 [inline]

__sock_sendmsg+0x221/0x270 net/socket.c:745

____sys_sendmsg+0x525/0x7d0 net/socket.c:2584

___sys_sendmsg net/socket.c:2638 [inline]

__sys_sendmsg+0x2b0/0x3a0 net/socket.c:2667

do_syscall_64+0xf9/0x240

entry_SYSCALL_64_after_hwframe+0x6f/0x77

If sk_psock_verdict_data_ready() and sk_psock_stop_verdict() are called

concurrently, psock->saved_data_ready can be NULL, causing the above issue.

This patch fixes this issue by calling the appropriate data ready function

using the sk_psock_data_ready() helper and protecting it from concurrency

with sk->sk_callback_lock.

The record
Technical detail
CVSS v3.1
5.3 · MEDIUM
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
CVSS v4.0
Not supplied
EPSS
0.00828 · 57.1th percentile
Published
2024-04-03T17:00Z
EPSS history
Timeline
  • 03 APR 17:00Z
    bpf, sockmap: Fix NULL pointer dereference in sk_psock_verdict_data_ready()
    cvelistv5