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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2023-53685— tun: Fix memory leak for detached NAPI queue.

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存在安全漏洞,该漏洞源于分离NAPI队列时未检查tfile->detached状态,可能导致内存泄漏。

AI Predicted 5.5 Difficulty: Moderate EPSS 0.14% · P3

Affected Version Matrix 8

VendorProduct Version RangeStatus
Linux Linux cde8b15f1aabe327038ee4e0e11dd6b798572f69< 9cae243b9ae25adfe468cd47ceca591f6725b79c affected
cde8b15f1aabe327038ee4e0e11dd6b798572f69< 0d20210a190f76db9ec35ee4e0fc77e6c7a148f5 affected
cde8b15f1aabe327038ee4e0e11dd6b798572f69< 82b2bc279467c875ec36f8ef820f00997c2a4e8e affected
3.8 affected
< 3.8 unaffected
6.1.30≤ 6.1.* unaffected
6.3.4≤ 6.3.* unaffected
6.4≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2023-53685

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
tun: Fix memory leak for detached NAPI queue.
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: tun: Fix memory leak for detached NAPI queue. syzkaller reported [0] memory leaks of sk and skb related to the TUN device with no repro, but we can reproduce it easily with: struct ifreq ifr = {} int fd_tun, fd_tmp; char buf[4] = {}; fd_tun = openat(AT_FDCWD, "/dev/net/tun", O_WRONLY, 0); ifr.ifr_flags = IFF_TUN | IFF_NAPI | IFF_MULTI_QUEUE; ioctl(fd_tun, TUNSETIFF, &ifr); ifr.ifr_flags = IFF_DETACH_QUEUE; ioctl(fd_tun, TUNSETQUEUE, &ifr); fd_tmp = socket(AF_PACKET, SOCK_PACKET, 0); ifr.ifr_flags = IFF_UP; ioctl(fd_tmp, SIOCSIFFLAGS, &ifr); write(fd_tun, buf, sizeof(buf)); close(fd_tun); If we enable NAPI and multi-queue on a TUN device, we can put skb into tfile->sk.sk_write_queue after the queue is detached. We should prevent it by checking tfile->detached before queuing skb. Note this must be done under tfile->sk.sk_write_queue.lock because write() and ioctl(IFF_DETACH_QUEUE) can run concurrently. Otherwise, there would be a small race window: write() ioctl(IFF_DETACH_QUEUE) `- tun_get_user `- __tun_detach |- if (tfile->detached) |- tun_disable_queue | `-> false | `- tfile->detached = tun | `- tun_queue_purge |- spin_lock_bh(&queue->lock) `- __skb_queue_tail(queue, skb) Another solution is to call tun_queue_purge() when closing and reattaching the detached queue, but it could paper over another problems. Also, we do the same kind of test for IFF_NAPI_FRAGS. [0]: unreferenced object 0xffff88801edbc800 (size 2048): comm "syz-executor.1", pid 33269, jiffies 4295743834 (age 18.756s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 07 40 00 00 00 00 00 00 00 00 00 00 00 00 ...@............ backtrace: [<000000008c16ea3d>] __do_kmalloc_node mm/slab_common.c:965 [inline] [<000000008c16ea3d>] __kmalloc+0x4a/0x130 mm/slab_common.c:979 [<000000003addde56>] kmalloc include/linux/slab.h:563 [inline] [<000000003addde56>] sk_prot_alloc+0xef/0x1b0 net/core/sock.c:2035 [<000000003e20621f>] sk_alloc+0x36/0x2f0 net/core/sock.c:2088 [<0000000028e43843>] tun_chr_open+0x3d/0x190 drivers/net/tun.c:3438 [<000000001b0f1f28>] misc_open+0x1a6/0x1f0 drivers/char/misc.c:165 [<000000004376f706>] chrdev_open+0x111/0x300 fs/char_dev.c:414 [<00000000614d379f>] do_dentry_open+0x2f9/0x750 fs/open.c:920 [<000000008eb24774>] do_open fs/namei.c:3636 [inline] [<000000008eb24774>] path_openat+0x143f/0x1a30 fs/namei.c:3791 [<00000000955077b5>] do_filp_open+0xce/0x1c0 fs/namei.c:3818 [<00000000b78973b0>] do_sys_openat2+0xf0/0x260 fs/open.c:1356 [<00000000057be699>] do_sys_open fs/open.c:1372 [inline] [<00000000057be699>] __do_sys_openat fs/open.c:1388 [inline] [<00000000057be699>] __se_sys_openat fs/open.c:1383 [inline] [<00000000057be699>] __x64_sys_openat+0x83/0xf0 fs/open.c:1383 [<00000000a7d2182d>] do_syscall_x64 arch/x86/entry/common.c:50 [inline] [<00000000a7d2182d>] do_syscall_64+0x3c/0x90 arch/x86/entry/common.c:80 [<000000004cc4e8c4>] entry_SYSCALL_64_after_hwframe+0x72/0xdc unreferenced object 0xffff88802f671700 (size 240): comm "syz-executor.1", pid 33269, jiffies 4295743854 (age 18.736s) hex dump (first 32 bytes): 68 c9 db 1e 80 88 ff ff 68 c9 db 1e 80 88 ff ff h.......h....... 00 c0 7b 2f 80 88 ff ff 00 c8 db 1e 80 88 ff ff ..{/............ backtrace: [<00000000e9d9fdb6>] __alloc_skb+0x223/0x250 net/core/skbuff.c:644 [<000000002c3e4e0b>] alloc_skb include/linux/skbuff.h:1288 [inline] [<000000002c3e4e0b>] alloc_skb_with_frags+0x6f/0x350 net/core/skbuff.c:6378 [<00000000825f98d7>] sock_alloc_send_pskb+0x3ac/0x3e0 net/core/sock.c:2729 [<00000000e9eb3df3>] tun_alloc_skb drivers/net/tun.c:1529 [inline] [< ---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存在安全漏洞,该漏洞源于分离NAPI队列时未检查tfile->detached状态,可能导致内存泄漏。
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 cde8b15f1aabe327038ee4e0e11dd6b798572f69 ~ 9cae243b9ae25adfe468cd47ceca591f6725b79c -
Linux Linux 3.8 -

II. Public POCs for CVE-2023-53685

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

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2023-53685

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

Patches & Fixes for CVE-2023-53685 (1)

Same Patch Batch · Linux · 2025-10-07 · 118 CVEs total

CVE-2023-53629 9.8 CRITICAL fs: dlm: fix use after free in midcomms commit
CVE-2023-53630 8.8 HIGH iommufd: Fix unpinning of pages when an access is present
CVE-2023-53676 8.8 HIGH scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
CVE-2023-53675 8.8 HIGH scsi: ses: Fix possible desc_ptr out-of-bounds accesses
CVE-2023-53673 8.8 HIGH Bluetooth: hci_event: call disconnect callback before deleting conn
CVE-2023-53679 8.3 HIGH wifi: mt7601u: fix an integer underflow
CVE-2023-53635 8.2 HIGH netfilter: conntrack: fix wrong ct->timeout value
CVE-2023-53669 7.8 HIGH tcp: fix skb_copy_ubufs() vs BIG TCP
CVE-2022-50555 7.8 HIGH tipc: fix a null-ptr-deref in tipc_topsrv_accept
CVE-2023-53627 7.8 HIGH scsi: hisi_sas: Grab sas_dev lock when traversing the members of sas_dev.list
CVE-2023-53626 7.8 HIGH ext4: fix possible double unlock when moving a directory
CVE-2023-53660 7.8 HIGH bpf, cpumap: Handle skb as well when clean up ptr_ring
CVE-2023-53659 7.8 HIGH iavf: Fix out-of-bounds when setting channels on remove
CVE-2023-53619 7.8 HIGH netfilter: conntrack: Avoid nf_ct_helper_hash uses after free
CVE-2023-53643 7.8 HIGH nvme-tcp: don't access released socket during error recovery
CVE-2023-53645 7.8 HIGH bpf: Make bpf_refcount_acquire fallible for non-owning refs
CVE-2023-53646 7.8 HIGH drm/i915/perf: add sentinel to xehp_oa_b_counters
CVE-2022-50528 7.8 HIGH drm/amdkfd: Fix memory leakage
CVE-2023-53651 7.8 HIGH Input: exc3000 - properly stop timer on shutdown
CVE-2023-53674 7.8 HIGH clk: Fix memory leak in devm_clk_notifier_register()

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

IV. Related Vulnerabilities

V. Comments for CVE-2023-53685

No comments yet


Leave a comment