# CVE-2021-47387: linux: In the Linux kernel, the following vulnerability has been resolved:  cpufreq: schedutil: Use kobject release() method...

CVE-2021-47387 is fixed in linux on 1 platform, first by DEBIAN-CVE-2021-47387, released May 21, 2024. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2021-47387
- Priority: Routine
- CVSS: 5.5 (medium)
- EPSS: 0.0025
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: May 21, 2024

## Description

In the Linux kernel, the following vulnerability has been resolved:  cpufreq: schedutil: Use kobject release() method to free sugov_tunables  The struct sugov_tunables is protected by the kobject, so we can't free it directly. Otherwise we would get a call trace like this:   ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x30   WARNING: CPU: 3 PID: 720 at lib/debugobjects.c:505 debug_print_object+0xb8/0x100   Modules linked in:   CPU: 3 PID: 720 Comm: a.sh Tainted: G        W         5.14.0-rc1-next-20210715-yocto-standard+ #507   Hardware name: Marvell OcteonTX CN96XX board (DT)   pstate: 40400009 (nZcv daif +PAN -UAO -TCO BTYPE=--)   pc : debug_print_object+0xb8/0x100   lr : debug_print_object+0xb8/0x100   sp : ffff80001ecaf910   x29: ffff80001ecaf910 x28: ffff00011b10b8d0 x27: ffff800011043d80   x26: ffff00011a8f0000 x25: ffff800013cb3ff0 x24: 0000000000000000   x23: ffff80001142aa68 x22: ffff800011043d80 x21: ffff00010de46f20   x20: ffff800013c0c520 x19: ffff800011d8f5b0 x18: 0000000000000010   x17: 6e6968207473696c x16: 5f72656d6974203a x15: 6570797420746365   x14: 6a626f2029302065 x13: 303378302f307830 x12: 2b6e665f72656d69   x11: ffff8000124b1560 x10: ffff800012331520 x9 : ffff8000100ca6b0   x8 : 000000000017ffe8 x7 : c0000000fffeffff x6 : 0000000000000001   x5 : ffff800011d8c000 x4 : ffff800011d8c740 x3 : 0000000000000000   x2 : ffff0001108301c0 x1 : ab3c90eedf9c0f00 x0 : 0000000000000000   Call trace:    debug_print_object+0xb8/0x100    __debug_check_no_obj_freed+0x1c0/0x230    debug_check_no_obj_freed+0x20/0x88    slab_free_freelist_hook+0x154/0x1c8    kfree+0x114/0x5d0    sugov_exit+0xbc/0xc0    cpufreq_exit_governor+0x44/0x90    cpufreq_set_policy+0x268/0x4a8    store_scaling_governor+0xe0/0x128    store+0xc0/0xf0    sysfs_kf_write+0x54/0x80    kernfs_fop_write_iter+0x128/0x1c0    new_sync_write+0xf0/0x190    vfs_write+0x2d4/0x478    ksys_write+0x74/0x100    __arm64_sys_write+0x24/0x30    invoke_syscall.constprop.0+0x54/0xe0    do_el0_svc+0x64/0x158    el0_svc+0x2c/0xb0    el0t_64_sync_handler+0xb0/0xb8    el0t_64_sync+0x198/0x19c   irq event stamp: 5518   hardirqs last  enabled at (5517): [<ffff8000100cbd7c>] console_unlock+0x554/0x6c8   hardirqs last disabled at (5518): [<ffff800010fc0638>] el1_dbg+0x28/0xa0   softirqs last  enabled at (5504): [<ffff8000100106e0>] __do_softirq+0x4d0/0x6c0   softirqs last disabled at (5483): [<ffff800010049548>] irq_exit+0x1b0/0x1b8  So split the original sugov_tunables_free() into two functions, sugov_clear_global_tunables() is just used to clear the global_tunables and the new sugov_tunables_free() is used as kobj_type::release to release the sugov_tunables safely.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 12.15 (bookworm) | 5.14.12-1 | [DEBIAN-CVE-2021-47387](https://patchblox.com/security/data/fix/linux/debian-cve-2021-47387.md) | May 21, 2024 |
| Linux | linux Debian 13.5 (trixie) | 5.14.12-1 | [DEBIAN-CVE-2021-47387](https://patchblox.com/security/data/fix/linux/debian-cve-2021-47387.md) | May 21, 2024 |
| Linux | linux Debian 14 | 5.14.12-1 | [DEBIAN-CVE-2021-47387](https://patchblox.com/security/data/fix/linux/debian-cve-2021-47387.md) | May 21, 2024 |

---

Data as of 2026-11-08T19:12:23Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
