CVE-2022-49220: dax: make sure inodes are flushed before destroy cache
In the Linux kernel, the following vulnerability has been resolved:
dax: make sure inodes are flushed before destroy cache
A bug can be triggered by following command
$ modprobe nd_pmem && modprobe -r nd_pmem
[ 10.060014] BUG dax_cache (Not tainted): Objects remaining in dax_cache on __kmem_cache_shutdown()
[ 10.060938] Slab 0x0000000085b729ac objects=9 used=1 fp=0x000000004f5ae469 flags=0x200000000010200(slab|head|node)
[ 10.062433] Call Trace:
[ 10.062673] dump_stack_lvl+0x34/0x44
[ 10.062865] slab_err+0x90/0xd0
[ 10.063619] __kmem_cache_shutdown+0x13b/0x2f0
[ 10.063848] kmem_cache_destroy+0x4a/0x110
[ 10.064058] __x64_sys_delete_module+0x265/0x300
This is caused by dax_fs_exit() not flushing inodes before destroy cache.
To fix this issue, call rcu_barrier() before destroy cache.
Security readout for executives and security teams
Plain-English summary
CVE-2022-49220 is a Linux kernel DAX cleanup bug. When the nd_pmem module is removed, leftover DAX cache objects can trigger a kernel BUG during cache shutdown. The business concern is mainly availability or operational instability on systems using persistent memory/DAX, not confirmed remote compromise.
Executive priority
Treat as a targeted kernel stability issue. Prioritize specialized Linux infrastructure using persistent memory over general servers. No public source provided evidence of active exploitation or remote attack paths, but kernel updates should be scheduled through normal maintenance.
Technical view
The issue is in Linux kernel DAX teardown: dax_fs_exit() destroys dax_cache without first flushing pending inode RCU callbacks. The resolved fix calls rcu_barrier() before destroying the cache. The CVE record lists Linux kernel versions including 4.12 through 5.18-era branches as affected, with multiple stable commit references.
Likely exposure
Systems most likely exposed are Linux hosts using DAX or persistent memory features, especially where the nd_pmem module is present and can be unloaded. Exposure depends on the distribution kernel version and whether the referenced stable fixes are included.
Exploitation context
The public record describes a reproducible kernel BUG when nd_pmem is loaded and then removed. There is no KEV listing and no cited evidence of active exploitation. The described trigger implies local module-management capability, not unauthenticated remote access.
Researcher notes
The CVE data lacks CVSS, CWE, and detailed distribution mapping. The clearest impact is a kernel BUG during DAX cache teardown. Avoid assuming broader privilege escalation or remote exploitability without additional vendor analysis.
Mitigation direction
Apply Linux kernel or distribution updates containing the referenced stable fixes.
Check vendor advisories for exact affected and fixed package versions.
Prioritize hosts using DAX, NVDIMM, or persistent memory features.
If no update exists, follow vendor guidance before changing DAX or module behavior.
Validation and detection
Inventory Linux systems using DAX, NVDIMM, or nd_pmem-related functionality.
Compare running kernel builds against vendor advisories and referenced stable commits.
Verify the fix adding rcu_barrier() before dax_cache destruction is present.
Review kernel logs for BUG messages referencing dax_cache shutdown.
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-49220 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.
0CVSS vectors
3Timeline events
0ADP providers
7Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Feb 26, 2025, 01:55 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.