Skip to content
CVE PROGRAM SOURCE RECORD5.5 Medium

CVE-2025-39910

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

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/686ea951.050a0220.385921.0016.GAE@google.com 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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 451769ebb7e792c3404db53b3c2a422990de654e to < c136f2e4f2edd58a62a3425d4dd373d82834d1f9affected
  • 451769ebb7e792c3404db53b3c2a422990de654e to < 9598c83a50a5f9d57fd0c12fc08d9425c1ce9537affected
  • 451769ebb7e792c3404db53b3c2a422990de654e to < aa1b4b7a1b92743297f9da741424df4703a8e11baffected
  • 451769ebb7e792c3404db53b3c2a422990de654e to < 33b95d90427cb4babf32059e323a6d0c027610feaffected
  • 451769ebb7e792c3404db53b3c2a422990de654e to < 79357cd06d41d0f5a11b17d7c86176e395d10ef2affected

Linux Linux

Default version status: affected

  • 5.17affected
  • 0 to < 5.17unaffected
  • 6.1.191 to ≤ 6.1.*unaffected
  • 6.6.160 to ≤ 6.6.*unaffected
  • 6.12.114 to ≤ 6.12.*unaffected
  • 6.16.8 to ≤ 6.16.*unaffected
  • 6.17 to ≤ *unaffected

References