CVE-2025-71134 Overview
A vulnerability has been identified in the Linux kernel's memory management subsystem (mm/page_alloc) related to improper handling of pageblock migration types during page coalescing operations. When a page is freed and coalesces with a buddy into a higher order page, the migration type of the buddy page should be updated to match the freed page. However, only the first pageblock of the buddy page is updated while the remaining pageblocks retain their original migration types.
This inconsistency between the migration type of the list containing the page and the page-owned pageblocks migration types causes warnings in the expand() function and other code paths. The kernel reports warnings such as "page type is 0, passed migratetype is 1" during memory allocation operations, indicating a state mismatch that could impact memory management stability.
Critical Impact
This kernel memory management vulnerability can cause system instability and kernel warnings during page allocation operations, potentially affecting system reliability and performance.
Affected Products
- Linux Kernel (affected versions pending further analysis)
Discovery Timeline
- January 14, 2026 - CVE-2025-71134 published to NVD
- January 14, 2026 - Last updated in NVD database
Technical Details for CVE-2025-71134
Vulnerability Analysis
The vulnerability resides in the Linux kernel's page allocator (mm/page_alloc.c), specifically in the logic that handles page coalescing during the free operation. When the kernel frees a page, it attempts to merge (coalesce) the freed page with its buddy pages to form larger contiguous memory blocks. This is a fundamental operation in the buddy allocator system.
During coalescing, when a freed page merges with a buddy page that has a different migration type, the kernel is supposed to update all pageblocks of the resulting larger page to have a consistent migration type. The bug occurs because the current implementation only updates the first pageblock of the buddy page, leaving subsequent pageblocks with stale migration type information.
This inconsistency manifests during the expand() function when the kernel attempts to allocate memory from the higher-order page. The allocation code expects all pageblocks within a compound page to have matching migration types. When this expectation is violated, the kernel triggers a warning, as demonstrated in the kernel log output showing the expand+0x23c/0x270 call trace.
Root Cause
The root cause is incomplete migration type propagation during buddy page coalescing. When pages coalesce into higher-order pages spanning multiple pageblocks, the migration type update logic fails to iterate through and update all affected pageblocks. Only the first pageblock receives the updated migration type, creating an inconsistent state in the memory management metadata.
Attack Vector
This is a kernel-level vulnerability that could be triggered through normal memory allocation and deallocation patterns. While the vulnerability primarily manifests as a stability issue causing kernel warnings, the migration type inconsistency could potentially be leveraged in scenarios involving memory pressure, huge page allocations, or NUMA-aware memory operations. The call trace indicates the vulnerability surfaces during anonymous huge page allocations through functions like vma_alloc_anon_folio_pmd and __do_huge_pmd_anonymous_page.
The vulnerability does not appear to require special privileges to trigger, as it can be activated through standard memory allocation patterns that cause page coalescing across pageblock boundaries.
Detection Methods for CVE-2025-71134
Indicators of Compromise
- Kernel warning messages containing "page type is X, passed migratetype is Y" in system logs
- expand+0x23c/0x270 or similar expand() function references in kernel call traces
- Repeated warnings from mm/page_alloc.c during memory-intensive operations
- Unexpected system instability during huge page allocations or memory pressure scenarios
Detection Strategies
- Monitor kernel logs (dmesg, /var/log/kern.log) for migration type mismatch warnings
- Implement alerting on WARNING entries originating from mm/page_alloc.c
- Track system stability metrics during memory-intensive workloads
- Review kernel traces for rmqueue_bulk, get_page_from_freelist, or alloc_frozen_pages anomalies
Monitoring Recommendations
- Enable and monitor kernel logging for memory management warnings
- Implement centralized log collection to capture kernel warnings across infrastructure
- Configure alerts for patterns matching "migratetype" inconsistencies in kernel output
- Monitor for unusual patterns in huge page allocation failures or THP (Transparent Huge Pages) issues
How to Mitigate CVE-2025-71134
Immediate Actions Required
- Review deployed Linux kernel versions and identify affected systems
- Apply available kernel patches from the official kernel git repository
- Consider disabling Transparent Huge Pages (THP) as a temporary workaround if experiencing stability issues
- Monitor systems for kernel warnings related to page allocation
Patch Information
The Linux kernel development team has released patches to address this vulnerability. The fix ensures that all pageblocks within a coalesced buddy page have their migration types properly updated to maintain consistency.
The following kernel commits contain the fix:
System administrators should update to kernel versions containing these patches through their distribution's package management system.
Workarounds
- Temporarily disable Transparent Huge Pages if experiencing stability issues: echo never > /sys/kernel/mm/transparent_hugepage/enabled
- Reduce memory pressure on affected systems until patching is complete
- Consider limiting huge page allocations in affected applications
- Monitor and restart services experiencing memory allocation failures as a temporary measure
# Temporary workaround: Disable Transparent Huge Pages
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# Verify THP is disabled
cat /sys/kernel/mm/transparent_hugepage/enabled
# Expected output: always madvise [never]
# To persist across reboots, add to /etc/rc.local or create systemd service
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


