CVE-2021-47082CWE-415

CVE-2021-47082

High · published March 4, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
15.7
In the wild
Unconfirmed
What it is

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

tun: avoid double free in tun_free_netdev

Avoid double free in tun_free_netdev() by moving the

dev->tstats and tun->security allocs to a new ndo_init routine

(tun_net_init()) that will be called by register_netdevice().

ndo_init is paired with the desctructor (tun_free_netdev()),

so if there's an error in register_netdevice() the destructor

will handle the frees.

BUG: KASAN: double-free or invalid-free in selinux_tun_dev_free_security+0x1a/0x20 security/selinux/hooks.c:5605

CPU: 0 PID: 25750 Comm: syz-executor416 Not tainted 5.16.0-rc2-syzk #1

Hardware name: Red Hat KVM, BIOS

Call Trace:

<TASK>

__dump_stack lib/dump_stack.c:88 [inline]

dump_stack_lvl+0x89/0xb5 lib/dump_stack.c:106

print_address_description.constprop.9+0x28/0x160 mm/kasan/report.c:247

kasan_report_invalid_free+0x55/0x80 mm/kasan/report.c:372

____kasan_slab_free mm/kasan/common.c:346 [inline]

__kasan_slab_free+0x107/0x120 mm/kasan/common.c:374

kasan_slab_free include/linux/kasan.h:235 [inline]

slab_free_hook mm/slub.c:1723 [inline]

slab_free_freelist_hook mm/slub.c:1749 [inline]

slab_free mm/slub.c:3513 [inline]

kfree+0xac/0x2d0 mm/slub.c:4561

selinux_tun_dev_free_security+0x1a/0x20 security/selinux/hooks.c:5605

security_tun_dev_free_security+0x4f/0x90 security/security.c:2342

tun_free_netdev+0xe6/0x150 drivers/net/tun.c:2215

netdev_run_todo+0x4df/0x840 net/core/dev.c:10627

rtnl_unlock+0x13/0x20 net/core/rtnetlink.c:112

__tun_chr_ioctl+0x80c/0x2870 drivers/net/tun.c:3302

tun_chr_ioctl+0x2f/0x40 drivers/net/tun.c:3311

vfs_ioctl fs/ioctl.c:51 [inline]

__do_sys_ioctl fs/ioctl.c:874 [inline]

__se_sys_ioctl fs/ioctl.c:860 [inline]

__x64_sys_ioctl+0x19d/0x220 fs/ioctl.c:860

do_syscall_x64 arch/x86/entry/common.c:50 [inline]

do_syscall_64+0x3a/0x80 arch/x86/entry/common.c:80

entry_SYSCALL_64_after_hwframe+0x44/0xae

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00252 · 15.7th percentile
Weakness
CWE-415 · Double Free
Published
2024-03-04T23:15Z
Affected products (10)
ProductVersionsFixed in
linux/linux_kernel< 4.19.2804.19.280
linux/linux_kernel≥ 4.20, < 5.4.2405.4.240
linux/linux_kernel≥ 5.5, < 5.10.1365.10.136
linux/linux_kernel≥ 5.11, < 5.15.125.15.12
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (10)
EPSS history
Timeline
  • 04 MAR 18:06Z
    tun: avoid double free in tun_free_netdev
    cvelistv5