In the Linux kernel, the following vulnerability has been resolved:
mm, slub: avoid zeroing kmalloc redzone
Since commit 946fa0dbf2d8 ("mm/slub: extend redzone check to extra allocated kmalloc space than requested"), setting orig_size treats the wasted space (object_size - orig_size) as a redzone. However with init_on_free=1 we clear the full object->size, including the redzone.
Additionally we clear the object metadata, including the stored orig_size, making it zero, which makes check_object() treat the whole object as a redzone.
These issues lead to the following BUG report with "slub_debug=FUZ init_on_free=1":
[ 0.000000] ============================================================================= [ 0.000000] BUG kmalloc-8 (Not tainted): kmalloc Redzone overwritten [ 0.000000] ----------------------------------------------------------------------------- [ 0.000000] [ 0.000000] 0xffff000010032858-0xffff00001003285f @offset=2136. First byte 0x0 instead of 0xcc [ 0.000000] FIX kmalloc-8: Restoring kmalloc Redzone 0xffff000010032858-0xffff00001003285f=0xcc [ 0.000000] Slab 0xfffffdffc0400c80 objects=36 used=23 fp=0xffff000010032a18 flags=0x3fffe0000000200(workingset|node=0|zone=0|lastcpupid=0x1ffff) [ 0.000000] Object 0xffff000010032858 @offset=2136 fp=0xffff0000100328c8 [ 0.000000] [ 0.000000] Redzone ffff000010032850: cc cc cc cc cc cc cc cc ........ [ 0.000000] Object ffff000010032858: cc cc cc cc cc cc cc cc ........ [ 0.000000] Redzone ffff000010032860: cc cc cc cc cc cc cc cc ........ [ 0.000000] Padding ffff0000100328b4: 00 00 00 00 00 00 00 00 00 00 00 00 ............ [ 0.000000] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.11.0-rc3-next-20240814-00004-g61844c55c3f4 #144 [ 0.000000] Hardware name: NXP i.MX95 19X19 board (DT) [ 0.000000] Call trace: [ 0.000000] dump_backtrace+0x90/0xe8 [ 0.000000] show_stack+0x18/0x24 [ 0.000000] dump_stack_lvl+0x74/0x8c [ 0.000000] dump_stack+0x18/0x24 [ 0.000000] print_trailer+0x150/0x218 [ 0.000000] check_object+0xe4/0x454 [ 0.000000] free_to_partial_list+0x2f8/0x5ec
To address the issue, use orig_size to clear the used area. And restore the value of orig_size after clear the remaining area.
When CONFIG_SLUB_DEBUG not defined, (get_orig_size()' directly returns s->object_size. So when using memset to init the area, the size can simply be orig_size, as orig_size returns object_size when CONFIG_SLUB_DEBUG not enabled. And orig_size can never be bigger than object_size.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 27, 2026 | Jul 27, 2026 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | May 15, 2025 | Oct 21, 2024 |
| Ubuntu | — | Upgrade linux-image-oem-22.04cUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.11.0-1015-oemUpgrade linux-image-6.8.0-1022-nvidia-lowlatencyUpgrade linux-image-azure-fdeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-awsUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-generic-64kUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-azureUpgrade linux-image-genericUpgrade linux-image-6.11.0-1010-lowlatencyUpgrade linux-image-6.8.0-1025-azure-fdeUpgrade linux-image-raspiUpgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-realtimeUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.8.0-1025-azureUpgrade linux-image-oem-22.04dUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1022-ibmUpgrade linux-image-6.8.0-1023-awsUpgrade linux-image-gcp-64kUpgrade linux-image-gkeopUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.11.0-1009-azureUpgrade linux-image-6.8.0-1020-oracleUpgrade linux-image-6.11.0-1008-raspiUpgrade linux-image-6.8.0-1020-oracle-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.11.0-1009-awsUpgrade linux-image-6.8.0-57-genericUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1019-raspiUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.11.0-1011-oracle-64kUpgrade linux-image-nvidiaUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.11.0-18-generic-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-6.11.0-1010-lowlatency-64kUpgrade linux-image-6.11.0-1005-realtimeUpgrade linux-image-gkeop-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-54-lowlatency-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1006-gkeopUpgrade linux-image-6.11.0-1011-oracleUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1022-nvidia-64kUpgrade linux-image-oem-24.04bUpgrade linux-image-6.8.0-1022-nvidiaUpgrade linux-image-6.11.0-18-genericUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-oem-24.04Upgrade linux-image-nvidia-64kUpgrade linux-image-kvmUpgrade linux-image-6.8.0-57-generic-64kUpgrade linux-image-6.8.0-1024-gcp-64kUpgrade linux-image-oracleUpgrade linux-image-gkeUpgrade linux-image-6.8.0-1024-oemUpgrade linux-image-6.8.0-1024-gcpUpgrade linux-image-6.11.0-1009-gcpUpgrade linux-image-gcpUpgrade linux-image-ibmUpgrade linux-image-6.8.0-1019-gkeUpgrade linux-image-6.8.0-54-genericUpgrade linux-image-6.8.0-54-lowlatencyUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.11.0-1009-azure-fdeUpgrade linux-image-6.8.0-54-generic-64kUpgrade linux-image-6.8.0-1022-nvidia-lowlatency-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-virtualUpgrade linux-image-oem-24.04a | Feb 20, 2025 | Oct 21, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub