Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-46789— mm/slub: add check for s->flags in the alloc_tagging_slab_free_hook

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞。攻击者利用该漏洞导致资源访问冲突。

AI Predicted 5.5 Difficulty: Moderate EPSS 0.18% · P7

Possible ATT&CK Techniques 1 AI

T1068 · Exploitation for Privilege Escalation

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 4b8736964640fe160724e7135dc62883bddcdace< 2d476c86ba4745fcbc912ce4627df4fa80caa9ad affected
4b8736964640fe160724e7135dc62883bddcdace< ab7ca09520e9c41c219a4427fe0dae24024bfe7f affected
6.10 affected
< 6.10 unaffected
6.10.10≤ 6.10.* unaffected
6.11≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-46789

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
mm/slub: add check for s->flags in the alloc_tagging_slab_free_hook
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: mm/slub: add check for s->flags in the alloc_tagging_slab_free_hook When enable CONFIG_MEMCG & CONFIG_KFENCE & CONFIG_KMEMLEAK, the following warning always occurs,This is because the following call stack occurred: mem_pool_alloc kmem_cache_alloc_noprof slab_alloc_node kfence_alloc Once the kfence allocation is successful,slab->obj_exts will not be empty, because it has already been assigned a value in kfence_init_pool. Since in the prepare_slab_obj_exts_hook function,we perform a check for s->flags & (SLAB_NO_OBJ_EXT | SLAB_NOLEAKTRACE),the alloc_tag_add function will not be called as a result.Therefore,ref->ct remains NULL. However,when we call mem_pool_free,since obj_ext is not empty, it eventually leads to the alloc_tag_sub scenario being invoked. This is where the warning occurs. So we should add corresponding checks in the alloc_tagging_slab_free_hook. For __GFP_NO_OBJ_EXT case,I didn't see the specific case where it's using kfence,so I won't add the corresponding check in alloc_tagging_slab_free_hook for now. [ 3.734349] ------------[ cut here ]------------ [ 3.734807] alloc_tag was not set [ 3.735129] WARNING: CPU: 4 PID: 40 at ./include/linux/alloc_tag.h:130 kmem_cache_free+0x444/0x574 [ 3.735866] Modules linked in: autofs4 [ 3.736211] CPU: 4 UID: 0 PID: 40 Comm: ksoftirqd/4 Tainted: G W 6.11.0-rc3-dirty #1 [ 3.736969] Tainted: [W]=WARN [ 3.737258] Hardware name: QEMU KVM Virtual Machine, BIOS unknown 2/2/2022 [ 3.737875] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 3.738501] pc : kmem_cache_free+0x444/0x574 [ 3.738951] lr : kmem_cache_free+0x444/0x574 [ 3.739361] sp : ffff80008357bb60 [ 3.739693] x29: ffff80008357bb70 x28: 0000000000000000 x27: 0000000000000000 [ 3.740338] x26: ffff80008207f000 x25: ffff000b2eb2fd60 x24: ffff0000c0005700 [ 3.740982] x23: ffff8000804229e4 x22: ffff800082080000 x21: ffff800081756000 [ 3.741630] x20: fffffd7ff8253360 x19: 00000000000000a8 x18: ffffffffffffffff [ 3.742274] x17: ffff800ab327f000 x16: ffff800083398000 x15: ffff800081756df0 [ 3.742919] x14: 0000000000000000 x13: 205d344320202020 x12: 5b5d373038343337 [ 3.743560] x11: ffff80008357b650 x10: 000000000000005d x9 : 00000000ffffffd0 [ 3.744231] x8 : 7f7f7f7f7f7f7f7f x7 : ffff80008237bad0 x6 : c0000000ffff7fff [ 3.744907] x5 : ffff80008237ba78 x4 : ffff8000820bbad0 x3 : 0000000000000001 [ 3.745580] x2 : 68d66547c09f7800 x1 : 68d66547c09f7800 x0 : 0000000000000000 [ 3.746255] Call trace: [ 3.746530] kmem_cache_free+0x444/0x574 [ 3.746931] mem_pool_free+0x44/0xf4 [ 3.747306] free_object_rcu+0xc8/0xdc [ 3.747693] rcu_do_batch+0x234/0x8a4 [ 3.748075] rcu_core+0x230/0x3e4 [ 3.748424] rcu_core_si+0x14/0x1c [ 3.748780] handle_softirqs+0x134/0x378 [ 3.749189] run_ksoftirqd+0x70/0x9c [ 3.749560] smpboot_thread_fn+0x148/0x22c [ 3.749978] kthread+0x10c/0x118 [ 3.750323] ret_from_fork+0x10/0x20 [ 3.750696] ---[ end trace 0000000000000000 ]---
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞。攻击者利用该漏洞导致资源访问冲突。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 4b8736964640fe160724e7135dc62883bddcdace ~ 2d476c86ba4745fcbc912ce4627df4fa80caa9ad -
Linux Linux 6.10 -

II. Public POCs for CVE-2024-46789

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-46789

请登录查看更多情报信息。

Patches & Fixes for CVE-2024-46789 (2)

Same Patch Batch · Linux · 2024-09-18 · 85 CVEs total

CVE-2024-46717 9.8 CRITICAL net/mlx5e: SHAMPO, Fix incorrect page release
CVE-2024-46736 9.8 CRITICAL smb: client: fix double put of @cfile in smb2_rename_path()
CVE-2024-46796 9.8 CRITICAL smb: client: fix double put of @cfile in smb2_set_path_size()
CVE-2024-46755 8.8 HIGH wifi: mwifiex: Do not return unused priv in mwifiex_get_priv_by_id()
CVE-2024-46750 7.8 HIGH PCI: Add missing bridge lock to pci_bus_lock()
CVE-2024-46787 7.8 HIGH userfaultfd: fix checks for huge PMDs
CVE-2024-46716 7.8 HIGH dmaengine: altera-msgdma: properly free descriptor in msgdma_free_descriptor
CVE-2024-46734 7.8 HIGH btrfs: fix race between direct IO write and fsync when using same fd
CVE-2024-46738 7.8 HIGH VMCI: Fix use-after-free when removing resource in vmci_resource_remove()
CVE-2024-46740 7.8 HIGH binder: fix UAF caused by offsets overwrite
CVE-2024-46781 7.8 HIGH nilfs2: fix missing cleanup on rollforward recovery error
CVE-2024-46746 7.8 HIGH HID: amd_sfh: free driver_data after destroying hid device
CVE-2024-46780 7.8 HIGH nilfs2: protect references to superblock parameters exposed in sysfs
CVE-2024-46741 7.8 HIGH misc: fastrpc: Fix double free of 'buf' in error path
CVE-2024-46751 7.8 HIGH btrfs: don't BUG_ON() when 0 reference count at btrfs_lookup_extent_info()
CVE-2024-46777 7.8 HIGH udf: Avoid excessive partition lengths
CVE-2024-46754 7.8 HIGH bpf: Remove tst_run from lwt_seg6local_prog_ops.
CVE-2024-46762 7.8 HIGH xen: privcmd: Fix possible access to a freed kirqfd instance
CVE-2024-46765 7.8 HIGH ice: protect XDP configuration with a mutex
CVE-2024-46771 7.8 HIGH can: bcm: Remove proc entry when dev is unregistered.

Showing top 20 of 85 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-46789

No comments yet


Leave a comment