CVE-2022-48797: mm: don't try to NUMA-migrate COW pages that have other uses
In the Linux kernel, the following vulnerability has been resolved:
mm: don't try to NUMA-migrate COW pages that have other uses
Oded Gabbay reports that enabling NUMA balancing causes corruption with
his Gaudi accelerator test load:
"All the details are in the bug, but the bottom line is that somehow,
this patch causes corruption when the numa balancing feature is
enabled AND we don't use process affinity AND we use GUP to pin pages
so our accelerator can DMA to/from system memory.
Either disabling numa balancing, using process affinity to bind to
specific numa-node or reverting this patch causes the bug to
disappear"
and Oded bisected the issue to commit 09854ba94c6a ("mm: do_wp_page()
simplification").
Now, the NUMA balancing shouldn't actually be changing the writability
of a page, and as such shouldn't matter for COW. But it appears it
does. Suspicious.
However, regardless of that, the condition for enabling NUMA faults in
change_pte_range() is nonsensical. It uses "page_mapcount(page)" to
decide if a COW page should be NUMA-protected or not, and that makes
absolutely no sense.
The number of mappings a page has is irrelevant: not only does GUP get a
reference to a page as in Oded's case, but the other mappings migth be
paged out and the only reference to them would be in the page count.
Since we should never try to NUMA-balance a page that we can't move
anyway due to other references, just fix the code to use 'page_count()'.
Oded confirms that that fixes his issue.
Now, this does imply that something in NUMA balancing ends up changing
page protections (other than the obvious one of making the page
inaccessible to get the NUMA faulting information). Otherwise the COW
simplification wouldn't matter - since doing the GUP on the page would
make sure it's writable.
The cause of that permission change would be good to figure out too,
since it clearly results in spurious COW events - but fixing the
nonsensical test that just happened to work before is obviously the
CorrectThing(tm) to do regardless.
Security readout for executives and security teams
Plain-English summary
CVE-2022-48797 is a Linux kernel memory-management flaw. Under specific NUMA balancing, copy-on-write, GUP-pinned memory, and device DMA conditions, it caused data corruption in a reported accelerator workload. The source bundle does not show active exploitation or CVSS severity.
Executive priority
Treat as a targeted reliability and integrity risk, not an emergency internet-scale exposure based on current sources. Patch during normal kernel maintenance, with faster handling for accelerator, HPC, or DMA-heavy production systems.
Technical view
The kernel fix changes NUMA-balancing eligibility from page_mapcount() to page_count() in change_pte_range(), avoiding NUMA migration/protection of COW pages with other references such as GUP pins. The issue was traced to commit 09854ba94c6a and fixed in listed stable commits.
Likely exposure
Most relevant to Linux hosts using NUMA balancing with workloads that pin user pages for device DMA, such as accelerator or high-performance I/O environments. General Linux systems may be affected by version, but practical exposure appears workload-dependent based on the provided evidence.
Exploitation context
No active exploitation is cited, and KEV is false. The public description frames this as corruption observed during a Gaudi accelerator test load, not as a documented attacker exploitation path.
Researcher notes
Evidence is limited to the CVE description and kernel stable references. The root permission-change behavior is noted as not fully explained in the description, so validation should focus on kernel lineage, NUMA balancing, GUP pins, and DMA workloads.
Mitigation direction
Update to a Linux kernel containing the referenced stable fixes.
Prioritize hosts using NUMA balancing with GUP-pinned DMA workloads.
Check Linux distribution advisories for packaged fixed kernel versions.
As a temporary control, evaluate disabling NUMA balancing or using process affinity.
Validate temporary controls with workload owners before production rollout.
Validation and detection
Inventory Linux kernel versions across NUMA-capable systems.
Identify workloads using accelerators, DMA, or GUP-pinned memory paths.
Confirm whether vendor kernels include one of the referenced stable commits.
Review logs or workload reports for unexplained data corruption.
Run regression tests for affected accelerator or DMA-heavy workloads after patching.
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-48797 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.