CVE Database›Document archive›CVE-2025-39910

CVE-2025-39910

kernel: mm/vmalloc, mm/kasan: respect gfp mask in kasan_populate_vmalloc()

Loading…

Severity

Moderate

Red Hat Product Security

6.2

CVSS 3.1

Review impact separately from score.

Published · October 1, 2025

Updated · June 30, 2026

Description

In the Linux kernel, the following vulnerability has been resolved:

mm/vmalloc, mm/kasan: respect gfp mask in kasan_populate_vmalloc()

kasan_populate_vmalloc() and its helpers ignore the caller's gfp_mask and always allocate memory using the hardcoded GFP_KERNEL flag. This makes them inconsistent with vmalloc(), which was recently extended to support GFP_NOFS and GFP_NOIO allocations.

Page table allocations performed during shadow population also ignore the external gfp_mask. To preserve the intended semantics of GFP_NOFS and GFP_NOIO, wrap the apply_to_page_range() calls into the appropriate memalloc scope.

xfs calls vmalloc with GFP_NOFS, so this bug could lead to deadlock.

There was a report here https://lkml.kernel.org/r/[email protected]

This patch:

  • Extends kasan_populate_vmalloc() and helpers to take gfp_mask;
  • Passes gfp_mask down to alloc_pages_bulk() and __get_free_page();
  • Enforces GFP_NOFS/NOIO semantics with memalloc_*_save()/restore() around apply_to_page_range();
  • Updates vmalloc.c and percpu allocator call sites accordingly.

Statement

KASAN’s vmalloc shadow population ignored the caller’s gfp_mask, allocating with GFP_KERNEL even in GFP_NOFS/NOIO contexts. This could trigger filesystem/block reclaim and re-entrancy, leading to deadlocks under load (e.g., XFS calling vmalloc(GFP_NOFS)).

CVSS score applicability

The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.

Mitigation

No mitigation is specified in collected source.

CVSS / CWE

CVSS 3.1 · 6.2
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

CWE-833 · Deadlock