In the Linux kernel, the following vulnerability has been resolved:
mm/mempolicy: fix memory leaks in weighted_interleave_auto_store()
weighted_interleave_auto_store() fetches old_wi_state inside the if
(!input) block only. This causes two memory leaks:
1. When a user writes "false" and the current mode is already manual,
the function returns early without freeing the freshly allocated
new_wi_state.
2. When a user writes "true", old_wi_state stays NULL because the
fetch is skipped entirely. The old state is then overwritten by
rcu_assign_pointer() but never freed, since the cleanup path is
gated on old_wi_state being non-NULL. A user can trigger this
repeatedly by writing "1" in a loop.
Fix both leaks by moving the old_wi_state fetch before the input check,
making it unconditional. This also allows a unified early return for both
"true" and "false" when the requested mode matches the current mode.
Reviewed by: Donet Tom <donettom@linux.ibm.com>
References
Configurations
Configuration 1 (hide)
|
History
16 Jun 2026, 15:14
| Type | Values Removed | Values Added |
|---|---|---|
| References | () https://git.kernel.org/stable/c/39caa9ca863f96b3d00447c5aa200cabda489856 - Patch | |
| References | () https://git.kernel.org/stable/c/6fae274ce0e3109cbbc4c18b354eaace1f0af7d7 - Patch | |
| References | () https://git.kernel.org/stable/c/c42a7efb9060d89b72708ffaf255d0002c2164a7 - Patch | |
| CPE | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | |
| First Time |
Linux linux Kernel
Linux |
|
| CWE | CWE-401 | |
| CVSS |
v2 : v3 : |
v2 : unknown
v3 : 5.5 |
27 May 2026, 14:17
| Type | Values Removed | Values Added |
|---|---|---|
| New CVE |
Information
Published : 2026-05-27 14:17
Updated : 2026-06-17 10:52
NVD link : CVE-2026-46042
Mitre link : CVE-2026-46042
CVE.ORG link : CVE-2026-46042
JSON object : View
Products Affected
linux
- linux_kernel
CWE
CWE-401
Missing Release of Memory after Effective Lifetime
