CVE-2022-48649: mm/slab_common: fix possible double free of kmem_cache
In the Linux kernel, the following vulnerability has been resolved:
mm/slab_common: fix possible double free of kmem_cache
When doing slub_debug test, kfence's 'test_memcache_typesafe_by_rcu'
kunit test case cause a use-after-free error:
BUG: KASAN: use-after-free in kobject_del+0x14/0x30
Read of size 8 at addr ffff888007679090 by task kunit_try_catch/261
CPU: 1 PID: 261 Comm: kunit_try_catch Tainted: G B N 6.0.0-rc5-next-20220916 #17
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
Call Trace:
<TASK>
dump_stack_lvl+0x34/0x48
print_address_description.constprop.0+0x87/0x2a5
print_report+0x103/0x1ed
kasan_report+0xb7/0x140
kobject_del+0x14/0x30
kmem_cache_destroy+0x130/0x170
test_exit+0x1a/0x30
kunit_try_run_case+0xad/0xc0
kunit_generic_run_threadfn_adapter+0x26/0x50
kthread+0x17b/0x1b0
</TASK>
The cause is inside kmem_cache_destroy():
kmem_cache_destroy
acquire lock/mutex
shutdown_cache
schedule_work(kmem_cache_release) (if RCU flag set)
release lock/mutex
kmem_cache_release (if RCU flag not set)
In some certain timing, the scheduled work could be run before
the next RCU flag checking, which can then get a wrong value
and lead to double kmem_cache_release().
Fix it by caching the RCU flag inside protected area, just like 'refcnt'
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel memory-management bug that could cause a kmem_cache object to be released twice under specific timing. The public description ties discovery to kernel debug/KUnit testing, not real-world compromise. Business urgency is unclear because severity, CVSS, affected version ranges, and practical attack path are not provided.
Executive priority
Treat as a kernel maintenance item unless vendor guidance raises severity. Patch through the normal operating-system update process, with extra attention to custom kernels because the source bundle lacks full version mapping.
Technical view
kmem_cache_destroy could schedule kmem_cache_release for RCU caches, then later re-check an RCU flag after work already ran. That race could use a stale or wrong value and trigger a double release/use-after-free. The fix caches the RCU flag while protected, matching the handling of the reference count.
Likely exposure
Exposure is limited to Linux kernels containing the vulnerable mm/slab_common behavior. The bundle lists Linux and stable commit references but does not provide complete affected version ranges, distributions, configurations, or package names.
Exploitation context
The source bundle does not show active exploitation, and KEV is false. Evidence describes a KASAN use-after-free during slub_debug with a KFENCE KUnit test. No public exploitability, privilege requirement, or attacker-controlled trigger is established here.
Researcher notes
The core issue is a race in kmem_cache_destroy around deferred RCU cache release. Available evidence is strong for the bug and fix mechanism but weak for external exploitability, affected ranges, and operational impact. Do not claim exploitation without additional vendor or KEV evidence.
Mitigation direction
Apply vendor kernel updates that include the referenced stable fixes.
Check Linux distribution advisories for CVE-2022-48649 package status.
Prioritize custom or self-built kernels for commit-level review.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-48649 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.