Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-26732— net: implement lockless setsockopt(SO_PEEK_OFF)

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于循环锁定依赖。

AI Predicted 5.5 Difficulty: Easy EPSS 0.16% · P4

Possible ATT&CK Techniques 1 AI

T1564.004 · NTFS File Attributes

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 859051dd165ec6cc915f0f2114699021144fd249< 897f75e2cde8a5f9f7529b55249af1fa4248c83b affected
859051dd165ec6cc915f0f2114699021144fd249< 56667da7399eb19af857e30f41bea89aa6fa812c affected
6.7 affected
< 6.7 unaffected
6.7.7≤ 6.7.* unaffected
6.8≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-26732

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
net: implement lockless setsockopt(SO_PEEK_OFF)
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: net: implement lockless setsockopt(SO_PEEK_OFF) syzbot reported a lockdep violation [1] involving af_unix support of SO_PEEK_OFF. Since SO_PEEK_OFF is inherently not thread safe (it uses a per-socket sk_peek_off field), there is really no point to enforce a pointless thread safety in the kernel. After this patch : - setsockopt(SO_PEEK_OFF) no longer acquires the socket lock. - skb_consume_udp() no longer has to acquire the socket lock. - af_unix no longer needs a special version of sk_set_peek_off(), because it does not lock u->iolock anymore. As a followup, we could replace prot->set_peek_off to be a boolean and avoid an indirect call, since we always use sk_set_peek_off(). [1] WARNING: possible circular locking dependency detected 6.8.0-rc4-syzkaller-00267-g0f1dd5e91e2b #0 Not tainted syz-executor.2/30025 is trying to acquire lock: ffff8880765e7d80 (&u->iolock){+.+.}-{3:3}, at: unix_set_peek_off+0x26/0xa0 net/unix/af_unix.c:789 but task is already holding lock: ffff8880765e7930 (sk_lock-AF_UNIX){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1691 [inline] ffff8880765e7930 (sk_lock-AF_UNIX){+.+.}-{0:0}, at: sockopt_lock_sock net/core/sock.c:1060 [inline] ffff8880765e7930 (sk_lock-AF_UNIX){+.+.}-{0:0}, at: sk_setsockopt+0xe52/0x3360 net/core/sock.c:1193 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (sk_lock-AF_UNIX){+.+.}-{0:0}: lock_acquire+0x1e3/0x530 kernel/locking/lockdep.c:5754 lock_sock_nested+0x48/0x100 net/core/sock.c:3524 lock_sock include/net/sock.h:1691 [inline] __unix_dgram_recvmsg+0x1275/0x12c0 net/unix/af_unix.c:2415 sock_recvmsg_nosec+0x18e/0x1d0 net/socket.c:1046 ____sys_recvmsg+0x3c0/0x470 net/socket.c:2801 ___sys_recvmsg net/socket.c:2845 [inline] do_recvmmsg+0x474/0xae0 net/socket.c:2939 __sys_recvmmsg net/socket.c:3018 [inline] __do_sys_recvmmsg net/socket.c:3041 [inline] __se_sys_recvmmsg net/socket.c:3034 [inline] __x64_sys_recvmmsg+0x199/0x250 net/socket.c:3034 do_syscall_64+0xf9/0x240 entry_SYSCALL_64_after_hwframe+0x6f/0x77 -> #0 (&u->iolock){+.+.}-{3:3}: check_prev_add kernel/locking/lockdep.c:3134 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain+0x18ca/0x58e0 kernel/locking/lockdep.c:3869 __lock_acquire+0x1345/0x1fd0 kernel/locking/lockdep.c:5137 lock_acquire+0x1e3/0x530 kernel/locking/lockdep.c:5754 __mutex_lock_common kernel/locking/mutex.c:608 [inline] __mutex_lock+0x136/0xd70 kernel/locking/mutex.c:752 unix_set_peek_off+0x26/0xa0 net/unix/af_unix.c:789 sk_setsockopt+0x207e/0x3360 do_sock_setsockopt+0x2fb/0x720 net/socket.c:2307 __sys_setsockopt+0x1ad/0x250 net/socket.c:2334 __do_sys_setsockopt net/socket.c:2343 [inline] __se_sys_setsockopt net/socket.c:2340 [inline] __x64_sys_setsockopt+0xb5/0xd0 net/socket.c:2340 do_syscall_64+0xf9/0x240 entry_SYSCALL_64_after_hwframe+0x6f/0x77 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(sk_lock-AF_UNIX); lock(&u->iolock); lock(sk_lock-AF_UNIX); lock(&u->iolock); *** DEADLOCK *** 1 lock held by syz-executor.2/30025: #0: ffff8880765e7930 (sk_lock-AF_UNIX){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1691 [inline] #0: ffff8880765e7930 (sk_lock-AF_UNIX){+.+.}-{0:0}, at: sockopt_lock_sock net/core/sock.c:1060 [inline] #0: ffff8880765e7930 (sk_lock-AF_UNIX){+.+.}-{0:0}, at: sk_setsockopt+0xe52/0x3360 net/core/sock.c:1193 stack backtrace: CPU: 0 PID: 30025 Comm: syz-executor.2 Not tainted 6.8.0-rc4-syzkaller-00267-g0f1dd5e91e2b #0 Hardware name: Google Google C ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于循环锁定依赖。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 859051dd165ec6cc915f0f2114699021144fd249 ~ 897f75e2cde8a5f9f7529b55249af1fa4248c83b -
Linux Linux 6.7 -

II. Public POCs for CVE-2024-26732

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-26732

请登录查看更多情报信息。

Other References for CVE-2024-26732 (2)

Same Patch Batch · Linux · 2024-04-03 · 94 CVEs total

CVE-2024-26760 9.8 CRITICAL scsi: target: pscsi: Fix bio_put() for error case
CVE-2024-26689 8.8 HIGH ceph: prevent use-after-free in encode_cap_msg()
CVE-2024-26779 8.8 HIGH wifi: mac80211: fix race condition on enabling fast-xmit
CVE-2024-26692 8.3 HIGH smb: Fix regression in writes when non-standard maximum write size negotiated
CVE-2024-26736 8.1 HIGH afs: Increase buffer size in afs_update_volume_status()
CVE-2024-26739 7.8 HIGH net/sched: act_mirred: don't override retval if we already lost the skb
CVE-2024-26737 7.8 HIGH bpf: Fix racing between bpf_timer_cancel_and_free and bpf_timer_cancel
CVE-2023-52637 7.8 HIGH can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)
CVE-2024-26728 7.8 HIGH drm/amd/display: fix null-pointer dereference on edid reading
CVE-2024-26748 7.8 HIGH usb: cdns3: fix memory double free when handle zero packet
CVE-2024-26712 7.8 HIGH powerpc/kasan: Fix addr error caused by page alignment
CVE-2024-26718 7.8 HIGH dm-crypt, dm-verity: disable tasklets
CVE-2024-26759 7.8 HIGH mm/swap: fix race when skipping swapcache
CVE-2024-26762 7.8 HIGH cxl/pci: Skip to handle RAS errors if CXL.mem device is detached
CVE-2024-26706 7.8 HIGH parisc: Fix random data corruption from exception handler
CVE-2024-26704 7.8 HIGH ext4: fix double-free of blocks due to wrong extents moved_len
CVE-2024-26766 7.8 HIGH IB/hfi1: Fix sdma.h tx->num_descs off-by-one error
CVE-2024-26773 7.8 HIGH ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found()
CVE-2024-26699 7.8 HIGH drm/amd/display: Fix array-index-out-of-bounds in dcn35_clkmgr
CVE-2024-26697 7.8 HIGH nilfs2: fix data corruption in dsync block recovery for small block sizes

Showing top 20 of 94 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-26732

No comments yet


Leave a comment