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 < c136f2e4f2edd58a62a3425d4dd373d82834d1f9affected451769ebb7e792c3404db53b3c2a422990de654e to < 9598c83a50a5f9d57fd0c12fc08d9425c1ce9537affected451769ebb7e792c3404db53b3c2a422990de654e to < aa1b4b7a1b92743297f9da741424df4703a8e11baffected451769ebb7e792c3404db53b3c2a422990de654e to < 33b95d90427cb4babf32059e323a6d0c027610feaffected451769ebb7e792c3404db53b3c2a422990de654e to < 79357cd06d41d0f5a11b17d7c86176e395d10ef2affected
Linux Linux
Default version status: affected
5.17affected0 to < 5.17unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.16.8 to ≤ 6.16.*unaffected6.17 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c136f2e4f2edd58a62a3425d4dd373d82834d1f9 ↗
- https://git.kernel.org/stable/c/9598c83a50a5f9d57fd0c12fc08d9425c1ce9537 ↗
- https://git.kernel.org/stable/c/aa1b4b7a1b92743297f9da741424df4703a8e11b ↗
- https://git.kernel.org/stable/c/33b95d90427cb4babf32059e323a6d0c027610fe ↗
- https://git.kernel.org/stable/c/79357cd06d41d0f5a11b17d7c86176e395d10ef2 ↗