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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2022-50409— net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory

EPSS 0.01% · P3
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2022-50409

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: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory Fixes the below NULL pointer dereference: [...] [ 14.471200] Call Trace: [ 14.471562] <TASK> [ 14.471882] lock_acquire+0x245/0x2e0 [ 14.472416] ? remove_wait_queue+0x12/0x50 [ 14.473014] ? _raw_spin_lock_irqsave+0x17/0x50 [ 14.473681] _raw_spin_lock_irqsave+0x3d/0x50 [ 14.474318] ? remove_wait_queue+0x12/0x50 [ 14.474907] remove_wait_queue+0x12/0x50 [ 14.475480] sk_stream_wait_memory+0x20d/0x340 [ 14.476127] ? do_wait_intr_irq+0x80/0x80 [ 14.476704] do_tcp_sendpages+0x287/0x600 [ 14.477283] tcp_bpf_push+0xab/0x260 [ 14.477817] tcp_bpf_sendmsg_redir+0x297/0x500 [ 14.478461] ? __local_bh_enable_ip+0x77/0xe0 [ 14.479096] tcp_bpf_send_verdict+0x105/0x470 [ 14.479729] tcp_bpf_sendmsg+0x318/0x4f0 [ 14.480311] sock_sendmsg+0x2d/0x40 [ 14.480822] ____sys_sendmsg+0x1b4/0x1c0 [ 14.481390] ? copy_msghdr_from_user+0x62/0x80 [ 14.482048] ___sys_sendmsg+0x78/0xb0 [ 14.482580] ? vmf_insert_pfn_prot+0x91/0x150 [ 14.483215] ? __do_fault+0x2a/0x1a0 [ 14.483738] ? do_fault+0x15e/0x5d0 [ 14.484246] ? __handle_mm_fault+0x56b/0x1040 [ 14.484874] ? lock_is_held_type+0xdf/0x130 [ 14.485474] ? find_held_lock+0x2d/0x90 [ 14.486046] ? __sys_sendmsg+0x41/0x70 [ 14.486587] __sys_sendmsg+0x41/0x70 [ 14.487105] ? intel_pmu_drain_pebs_core+0x350/0x350 [ 14.487822] do_syscall_64+0x34/0x80 [ 14.488345] entry_SYSCALL_64_after_hwframe+0x63/0xcd [...] The test scenario has the following flow: thread1 thread2 ----------- --------------- tcp_bpf_sendmsg tcp_bpf_send_verdict tcp_bpf_sendmsg_redir sock_close tcp_bpf_push_locked __sock_release tcp_bpf_push //inet_release do_tcp_sendpages sock->ops->release sk_stream_wait_memory // tcp_close sk_wait_event sk->sk_prot->close release_sock(__sk); *** lock_sock(sk); __tcp_close sock_orphan(sk) sk->sk_wq = NULL release_sock **** lock_sock(__sk); remove_wait_queue(sk_sleep(sk), &wait); sk_sleep(sk) //NULL pointer dereference &rcu_dereference_raw(sk->sk_wq)->wait While waiting for memory in thread1, the socket is released with its wait queue because thread2 has closed it. This caused by tcp_bpf_send_verdict didn't increase the f_count of psock->sk_redir->sk_socket->file in thread1. We should check if SOCK_DEAD flag is set on wakeup in sk_stream_wait_memory before accessing the wait queue.
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于未正确处理死亡套接字的sk_wq访问,可能导致空指针取消引用。
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

VendorProductAffected VersionsCPESubscribe
LinuxLinux 604326b41a6fb9b4a78b6179335decee0365cd8c ~ a76462dbdd8bddcbeec9463bc9e54e509b860762 -
LinuxLinux 4.20 -

II. Public POCs for CVE-2022-50409

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2022-50409

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-09-18 · 121 CVEs total

CVE-2022-50402drivers/md/md-bitmap: check the return value of md_bitmap_get_counter()
CVE-2022-50418wifi: ath11k: mhi: fix potential memory leak in ath11k_mhi_register()
CVE-2022-50417drm/panfrost: Fix GEM handle creation ref-counting
CVE-2022-50416irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init()
CVE-2022-50415parisc: led: Fix potential null-ptr-deref in start_task()
CVE-2022-50414scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails
CVE-2022-50413wifi: mac80211: fix use-after-free
CVE-2022-50412drm: bridge: adv7511: unregister cec i2c device after cec adapter
CVE-2022-50411ACPICA: Fix error code path in acpi_ds_call_control_method()
CVE-2022-50410NFSD: Protect against send buffer overflow in NFSv2 READ
CVE-2022-50407crypto: hisilicon/qm - increase the memory of local variables
CVE-2022-50408wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit()
CVE-2022-50406iomap: iomap: fix memory corruption when recording errors during writeback
CVE-2022-50404fbdev: fbcon: release buffer when fbcon_do_set_font() failed
CVE-2022-50405net/tunnel: wait until all sk_user_data reader finish before releasing the sock
CVE-2023-53409drivers: base: component: fix memory leak with using debugfs_lookup()
CVE-2023-53412USB: gadget: bcm63xx_udc: fix memory leak with using debugfs_lookup()
CVE-2023-53411PM: EM: fix memory leak with using debugfs_lookup()
CVE-2023-53410USB: ULPI: fix memory leak with using debugfs_lookup()
CVE-2023-53407USB: gadget: pxa27x_udc: fix memory leak with using debugfs_lookup()

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

IV. Related Vulnerabilities

V. Comments for CVE-2022-50409

No comments yet


Leave a comment