LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性
タイトル LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性
概要

Linuxカーネルのmm/mempolicyにあるweighted_interleave_auto_store()関数で、メモリリークの脆弱性が修正されました。具体的には、入力がない場合にold_wi_stateを適切に取得せず、メモリリークが発生していました。この問題は、old_wi_stateの取得処理を入力チェックの前に移動し、モードが変わらない場合でも一貫した早期リターンを行うことで解決されました。これにより、falseを書き込んだ際のnew_wi_stateの解放漏れや、trueを書き込んだ際のold_wi_stateの未取得によるメモリリークが防止されます。レビューはDonet Tomが担当しました。

想定される影響 ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

公表日 2026年5月27日0:00
登録日 2026年6月17日15:40
最終更新日 2026年6月17日15:40
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Linux
Linux Kernel 6.16 以上 6.18.27 未満
Linux Kernel 6.19 以上 7.0.4 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年06月17日]
  掲載
2026年6月17日15:40

NVD脆弱性情報
CVE-2026-46042
概要

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>

公表日 2026年5月27日23:17
登録日 2026年5月28日4:13
最終更新日 2026年5月27日23:48
関連情報、対策とツール
共通脆弱性一覧