CVE-2025-39910

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

State
Published
Severity
5.5 Medium
Published
Oct 1, 2025
Updated
Oct 30, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.15.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 451769ebb7e792c3404db53b3c2a422990de654e to before c136f2e4f2edd58a62a3425d4dd373d82834d1f9Affected
  • 451769ebb7e792c3404db53b3c2a422990de654e to before 9598c83a50a5f9d57fd0c12fc08d9425c1ce9537Affected
  • 451769ebb7e792c3404db53b3c2a422990de654e to before aa1b4b7a1b92743297f9da741424df4703a8e11bAffected
  • 451769ebb7e792c3404db53b3c2a422990de654e to before 33b95d90427cb4babf32059e323a6d0c027610feAffected
  • 451769ebb7e792c3404db53b3c2a422990de654e to before 79357cd06d41d0f5a11b17d7c86176e395d10ef2Affected
LinuxLinux
  • 5.17Affected
  • before 5.17Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.16.8 through 6.16.*Not affected
  • 6.17 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.