Linux: Use After Free
CVE-2026-43015 is a high-severity use after free vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions bf64cae913cdd4821f13d5d1d68900c0891bef69, 67f70841a175fa3469119f52d77a3662c07507a2, 2d96204e4184d6f7dd2f93c6f218fd0c1f55e9ae as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.13% chance of exploitation within 30 days, which is low compared with other CVEs.
High severity with no evidence of exploitation so far.
What to do
- Update Linux to bf64cae913cdd4821f13d5d1d68900c0891bef69 or 67f70841a175fa3469119f52d77a3662c07507a2 or 2d96204e4184d6f7dd2f93c6f218fd0c1f55e9ae or b3f799cdf830df1782ae463cf15ace35015be99e, whichever matches your release line, or a later version.
- Update Linux Kernel to 4.15 or 4.20 or 5.5 or 5.10.253, whichever matches your release line, or a later version.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Linux | Linux | 7721221e87d25c9840d9ca6b986dbdc410d5ce2b up to, but not including, bf64cae913cdd4821f13d5d1d68900c0891bef69; d82d5303c4c539db86588ffb5dc5b26c3f1513e8 up to, but not including, 67f70841a175fa3469119f52d77a3662c07507a2; d82d5303c4c539db86588ffb5dc5b26c3f1513e8 up to, but not including, 2d96204e4184d6f7dd2f93c6f218fd0c1f55e9ae; d82d5303c4c539db86588ffb5dc5b26c3f1513e8 up to, but not including, b3f799cdf830df1782ae463cf15ace35015be99e; d82d5303c4c539db86588ffb5dc5b26c3f1513e8 up to, but not including, f310a836da90d0f0321b14d446c071af63f9ee4c; d82d5303c4c539db86588ffb5dc5b26c3f1513e8 up to, but not including, 16ab4c0e2b15df5d33bfcb9ea8e4441b85dd4a57; d82d5303c4c539db86588ffb5dc5b26c3f1513e8 up to, but not including, 3496fb9e66f79d4def3bb7ec7563e3eaa33a688f; d82d5303c4c539db86588ffb5dc5b26c3f1513e8 up to, but not including, ce8fe5287b87e24e225c342f3b0ec04f0b3680fe; and 10 more ranges | bf64cae913cdd4821f13d5d1d68900c0891bef69, 67f70841a175fa3469119f52d77a3662c07507a2, 2d96204e4184d6f7dd2f93c6f218fd0c1f55e9ae, b3f799cdf830df1782ae463cf15ace35015be99e, f310a836da90d0f0321b14d446c071af63f9ee4c, 16ab4c0e2b15df5d33bfcb9ea8e4441b85dd4a57 |
| Linux | Linux Kernel | 4.14.249 up to, but not including, 4.15; 4.19.209 up to, but not including, 4.20; 5.4.150 up to, but not including, 5.5; 5.10.70 up to, but not including, 5.10.253; 5.14.9 up to, but not including, 5.15; 5.15.1 up to, but not including, 5.15.203; 5.16 up to, but not including, 6.1.168; 6.2 up to, but not including, 6.6.134; and 5 more ranges | 4.15, 4.20, 5.5, 5.10.253, 5.15, 5.15.203 |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- LocalThe attacker needs local access or must trick a user into running something.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- LowA basic user account is enough.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- HighAll data handled by the component can be read.
- Integrity
- HighData or code can be modified at will.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.
Official description
In the Linux kernel, the following vulnerability has been resolved: net: macb: fix clk handling on PCI glue driver removal platform_device_unregister() may still want to use the registered clks during runtime resume callback. Note that there is a commit d82d5303c4c5 ("net: macb: fix use after free on rmmod") that addressed the similar problem of clk vs platform device unregistration but just moved the bug to another place. Save the pointers to clks into local variables for reuse after platform device is unregistered. BUG: KASAN: use-after-free in clk_prepare+0x5a/0x60 Read of size 8 at addr ffff888104f85e00 by task modprobe/597 CPU: 2 PID: 597 Comm: modprobe Not tainted 6.1.164+ #114 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.1-0-g3208b098f51a-prebuilt.qemu.org 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x8d/0xba print_report+0x17f/0x496 kasan_report+0xd9/0x180 clk_prepare+0x5a/0x60 macb_runtime_resume+0x13d/0x410 [macb] pm_generic_runtime_resume+0x97/0xd0 __rpm_callback+0xc8/0x4d0 rpm_callback+0xf6/0x230 rpm_resume+0xeeb/0x1a70 __pm_runtime_resume+0xb4/0x170 bus_remove_device+0x2e3/0x4b0 device_del+0x5b3/0xdc0 platform_device_del+0x4e/0x280 platform_device_unregister+0x11/0x50 pci_device_remove+0xae/0x210 device_remove+0xcb/0x180 device_release_driver_internal+0x529/0x770 driver_detach+0xd4/0x1a0 bus_remove_driver+0x135/0x260 driver_unregister+0x72/0xb0 pci_unregister_driver+0x26/0x220 __do_sys_delete_module+0x32e/0x550 do_syscall_64+0x35/0x80 entry_SYSCALL_64_after_hwframe+0x6e/0xd8 </TASK> Allocated by task 519: kasan_save_stack+0x2c/0x50 kasan_set_track+0x21/0x30 __kasan_kmalloc+0x8e/0x90 __clk_register+0x458/0x2890 clk_hw_register+0x1a/0x60 __clk_hw_register_fixed_rate+0x255/0x410 clk_register_fixed_rate+0x3c/0xa0 macb_probe+0x1d8/0x42e [macb_pci] local_pci_probe+0xd7/0x190 pci_device_probe+0x252/0x600 really_probe+0x255/0x7f0 __driver_probe_device+0x1ee/0x330 driver_probe_device+0x4c/0x1f0 __driver_attach+0x1df/0x4e0 bus_for_each_dev+0x15d/0x1f0 bus_add_driver+0x486/0x5e0 driver_register+0x23a/0x3d0 do_one_initcall+0xfd/0x4d0 do_init_module+0x18b/0x5a0 load_module+0x5663/0x7950 __do_sys_finit_module+0x101/0x180 do_syscall_64+0x35/0x80 entry_SYSCALL_64_after_hwframe+0x6e/0xd8 Freed by task 597: kasan_save_stack+0x2c/0x50 kasan_set_track+0x21/0x30 kasan_save_free_info+0x2a/0x50 __kasan_slab_free+0x106/0x180 __kmem_cache_free+0xbc/0x320 clk_unregister+0x6de/0x8d0 macb_remove+0x73/0xc0 [macb_pci] pci_device_remove+0xae/0x210 device_remove+0xcb/0x180 device_release_driver_internal+0x529/0x770 driver_detach+0xd4/0x1a0 bus_remove_driver+0x135/0x260 driver_unregister+0x72/0xb0 pci_unregister_driver+0x26/0x220 __do_sys_delete_module+0x32e/0x550 do_syscall_64+0x35/0x80 entry_SYSCALL_64_after_hwframe+0x6e/0xd8
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Use After Free
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory belongs to the code that operates on the new pointer.
How developers prevent this class of flaw
- Choose a language that provides automatic memory management.
- When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.
Timeline
- CVE record published.
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
- git.kernel.org/stable/c/16ab4c0e2b15df5d33bfcb9ea8e4441b85dd4a57
- git.kernel.org/stable/c/2d96204e4184d6f7dd2f93c6f218fd0c1f55e9ae
- git.kernel.org/stable/c/3496fb9e66f79d4def3bb7ec7563e3eaa33a688f
- git.kernel.org/stable/c/67f70841a175fa3469119f52d77a3662c07507a2
- git.kernel.org/stable/c/b3f799cdf830df1782ae463cf15ace35015be99e
- git.kernel.org/stable/c/bf64cae913cdd4821f13d5d1d68900c0891bef69
- git.kernel.org/stable/c/ce8fe5287b87e24e225c342f3b0ec04f0b3680fe
- git.kernel.org/stable/c/f310a836da90d0f0321b14d446c071af63f9ee4c
Recent Use After Free vulnerabilities
- 8.1 High severity
- 8.1 High severity
- 7.8 High severity
- 7.0 High severity
- 7.8 High severity
- 7.8 High severity
Spotted an error? Tell us.