CVE-2021-47237

net: hamradio: fix memory leak in mkiss_close

published May 21, 2024

CVSS
—
EPSS
0%
Percentile
12.6
In the wild
Unconfirmed
What it is

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

net: hamradio: fix memory leak in mkiss_close

My local syzbot instance hit memory leak in

mkiss_open()[1]. The problem was in missing

free_netdev() in mkiss_close().

In mkiss_open() netdevice is allocated and then

registered, but in mkiss_close() netdevice was

only unregistered, but not freed.

Fail log:

BUG: memory leak

unreferenced object 0xffff8880281ba000 (size 4096):

comm "syz-executor.1", pid 11443, jiffies 4295046091 (age 17.660s)

hex dump (first 32 bytes):

61 78 30 00 00 00 00 00 00 00 00 00 00 00 00 00 ax0.............

00 27 fa 2a 80 88 ff ff 00 00 00 00 00 00 00 00 .'.*............

backtrace:

[<ffffffff81a27201>] kvmalloc_node+0x61/0xf0

[<ffffffff8706e7e8>] alloc_netdev_mqs+0x98/0xe80

[<ffffffff84e64192>] mkiss_open+0xb2/0x6f0 [1]

[<ffffffff842355db>] tty_ldisc_open+0x9b/0x110

[<ffffffff84236488>] tty_set_ldisc+0x2e8/0x670

[<ffffffff8421f7f3>] tty_ioctl+0xda3/0x1440

[<ffffffff81c9f273>] __x64_sys_ioctl+0x193/0x200

[<ffffffff8911263a>] do_syscall_64+0x3a/0xb0

[<ffffffff89200068>] entry_SYSCALL_64_after_hwframe+0x44/0xae

BUG: memory leak

unreferenced object 0xffff8880141a9a00 (size 96):

comm "syz-executor.1", pid 11443, jiffies 4295046091 (age 17.660s)

hex dump (first 32 bytes):

e8 a2 1b 28 80 88 ff ff e8 a2 1b 28 80 88 ff ff ...(.......(....

98 92 9c aa b0 40 02 00 00 00 00 00 00 00 00 00 .....@..........

backtrace:

[<ffffffff8709f68b>] __hw_addr_create_ex+0x5b/0x310

[<ffffffff8709fb38>] __hw_addr_add_ex+0x1f8/0x2b0

[<ffffffff870a0c7b>] dev_addr_init+0x10b/0x1f0

[<ffffffff8706e88b>] alloc_netdev_mqs+0x13b/0xe80

[<ffffffff84e64192>] mkiss_open+0xb2/0x6f0 [1]

[<ffffffff842355db>] tty_ldisc_open+0x9b/0x110

[<ffffffff84236488>] tty_set_ldisc+0x2e8/0x670

[<ffffffff8421f7f3>] tty_ioctl+0xda3/0x1440

[<ffffffff81c9f273>] __x64_sys_ioctl+0x193/0x200

[<ffffffff8911263a>] do_syscall_64+0x3a/0xb0

[<ffffffff89200068>] entry_SYSCALL_64_after_hwframe+0x44/0xae

BUG: memory leak

unreferenced object 0xffff8880219bfc00 (size 512):

comm "syz-executor.1", pid 11443, jiffies 4295046091 (age 17.660s)

hex dump (first 32 bytes):

00 a0 1b 28 80 88 ff ff 80 8f b1 8d ff ff ff ff ...(............

80 8f b1 8d ff ff ff ff 00 00 00 00 00 00 00 00 ................

backtrace:

[<ffffffff81a27201>] kvmalloc_node+0x61/0xf0

[<ffffffff8706eec7>] alloc_netdev_mqs+0x777/0xe80

[<ffffffff84e64192>] mkiss_open+0xb2/0x6f0 [1]

[<ffffffff842355db>] tty_ldisc_open+0x9b/0x110

[<ffffffff84236488>] tty_set_ldisc+0x2e8/0x670

[<ffffffff8421f7f3>] tty_ioctl+0xda3/0x1440

[<ffffffff81c9f273>] __x64_sys_ioctl+0x193/0x200

[<ffffffff8911263a>] do_syscall_64+0x3a/0xb0

[<ffffffff89200068>] entry_SYSCALL_64_after_hwframe+0x44/0xae

BUG: memory leak

unreferenced object 0xffff888029b2b200 (size 256):

comm "syz-executor.1", pid 11443, jiffies 4295046091 (age 17.660s)

hex dump (first 32 bytes):

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

backtrace:

[<ffffffff81a27201>] kvmalloc_node+0x61/0xf0

[<ffffffff8706f062>] alloc_netdev_mqs+0x912/0xe80

[<ffffffff84e64192>] mkiss_open+0xb2/0x6f0 [1]

[<ffffffff842355db>] tty_ldisc_open+0x9b/0x110

[<ffffffff84236488>] tty_set_ldisc+0x2e8/0x670

[<ffffffff8421f7f3>] tty_ioctl+0xda3/0x1440

[<ffffffff81c9f273>] __x64_sys_ioctl+0x193/0x200

[<ffffffff8911263a>] do_syscall_64+0x3a/0xb0

[<ffffffff89200068>] entry_SYSCALL_64_after_hwframe+0x44/0xae

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00226 · 12.6th percentile
Published
2024-05-21T14:19Z
EPSS history
Timeline
  • 21 MAY 14:19Z
    net: hamradio: fix memory leak in mkiss_close
    cvelistv5