We use these services and cookies to improve your user experience. You may opt out if you wish, however, this may limit some features on this site.

Please see our statement on Data Privacy.

Crisp.chat (Helpdesk and Chat)

Ok

THREATINT
PUBLISHED

CVE-2022-49014

net: tun: Fix use-after-free in tun_detach()



Description

In the Linux kernel, the following vulnerability has been resolved: net: tun: Fix use-after-free in tun_detach() syzbot reported use-after-free in tun_detach() [1]. This causes call trace like below: ================================================================== BUG: KASAN: use-after-free in notifier_call_chain+0x1ee/0x200 kernel/notifier.c:75 Read of size 8 at addr ffff88807324e2a8 by task syz-executor.0/3673 CPU: 0 PID: 3673 Comm: syz-executor.0 Not tainted 6.1.0-rc5-syzkaller-00044-gcc675d22e422 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022 Call Trace: <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xd1/0x138 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:284 [inline] print_report+0x15e/0x461 mm/kasan/report.c:395 kasan_report+0xbf/0x1f0 mm/kasan/report.c:495 notifier_call_chain+0x1ee/0x200 kernel/notifier.c:75 call_netdevice_notifiers_info+0x86/0x130 net/core/dev.c:1942 call_netdevice_notifiers_extack net/core/dev.c:1983 [inline] call_netdevice_notifiers net/core/dev.c:1997 [inline] netdev_wait_allrefs_any net/core/dev.c:10237 [inline] netdev_run_todo+0xbc6/0x1100 net/core/dev.c:10351 tun_detach drivers/net/tun.c:704 [inline] tun_chr_close+0xe4/0x190 drivers/net/tun.c:3467 __fput+0x27c/0xa90 fs/file_table.c:320 task_work_run+0x16f/0x270 kernel/task_work.c:179 exit_task_work include/linux/task_work.h:38 [inline] do_exit+0xb3d/0x2a30 kernel/exit.c:820 do_group_exit+0xd4/0x2a0 kernel/exit.c:950 get_signal+0x21b1/0x2440 kernel/signal.c:2858 arch_do_signal_or_restart+0x86/0x2300 arch/x86/kernel/signal.c:869 exit_to_user_mode_loop kernel/entry/common.c:168 [inline] exit_to_user_mode_prepare+0x15f/0x250 kernel/entry/common.c:203 __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline] syscall_exit_to_user_mode+0x1d/0x50 kernel/entry/common.c:296 do_syscall_64+0x46/0xb0 arch/x86/entry/common.c:86 entry_SYSCALL_64_after_hwframe+0x63/0xcd The cause of the issue is that sock_put() from __tun_detach() drops last reference count for struct net, and then notifier_call_chain() from netdev_state_change() accesses that struct net. This patch fixes the issue by calling sock_put() from tun_detach() after all necessary accesses for the struct net has done.

Reserved 2024-08-22 | Published 2024-10-21 | Updated 2025-05-04 | Assigner Linux

Product status

Default status
unaffected

83c1f36f9880814b24cdf6c2f91f66f61db65326 before 1f23f1890d91812c35d32eab1b49621b6d32dc7b
affected

83c1f36f9880814b24cdf6c2f91f66f61db65326 before 16c244bc65d1175775325ec0489a5a5c830e02c7
affected

83c1f36f9880814b24cdf6c2f91f66f61db65326 before 5f442e1d403e0496bacb74a58e2be7f500695e6f
affected

83c1f36f9880814b24cdf6c2f91f66f61db65326 before 04b995e963229501401810dab89dc73e7f12d054
affected

83c1f36f9880814b24cdf6c2f91f66f61db65326 before 4cde8da2d814a3b7b176db81922d4ddaad7c0f0e
affected

83c1f36f9880814b24cdf6c2f91f66f61db65326 before 5daadc86f27ea4d691e2131c04310d0418c6cd12
affected

Default status
affected

4.17
affected

Any version before 4.17
unaffected

4.19.268
unaffected

5.4.226
unaffected

5.10.158
unaffected

5.15.82
unaffected

6.0.12
unaffected

6.1
unaffected

References

git.kernel.org/...c/1f23f1890d91812c35d32eab1b49621b6d32dc7b

git.kernel.org/...c/16c244bc65d1175775325ec0489a5a5c830e02c7

git.kernel.org/...c/5f442e1d403e0496bacb74a58e2be7f500695e6f

git.kernel.org/...c/04b995e963229501401810dab89dc73e7f12d054

git.kernel.org/...c/4cde8da2d814a3b7b176db81922d4ddaad7c0f0e

git.kernel.org/...c/5daadc86f27ea4d691e2131c04310d0418c6cd12

cve.org (CVE-2022-49014)

nvd.nist.gov (CVE-2022-49014)

Download JSON

Share this page
https://cve.threatint.eu/CVE/CVE-2022-49014

Support options

Helpdesk Chat, Email, Knowledgebase