CVE-2026-80719 in Linux情報

要約

〜によって VulDB • 2026年08月28日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

mm: mglru: memcgの親変更(reparenting)後に古くなったバッチ更新を修正する

mglruページテーブルウォーカーは、lruvecロックを取得せずにページテーブルを走査している間に、walk->nr_pagesに世代ごとのサイズ差分をバッチ処理します。その後、reset_batch_size()関数がこれらの差分をfoldし、lruvecロックの下でwalk->lruvecに適用します。

ページテーブルウォーカーは、以下のようにmemcgの親変更パスと並行して実行される可能性があります:

CPU0 CPU1 ==== ====

walk_mm --> walk_page_range --> update_batch_size --> walk->nr_pages += delta

mem_cgroup_css_offline --> memcg_reparent_objcgs --> lruvecロックを取得 lru_gen_reparent_memcg --> 子foliosを親にリパレント(再配置)する lruvecロックを解放

lruvecロックを取得 reset_batch_size --> child lrugen->nr_pages += delta

これにより、lru_gen_exit_memcg()内で以下の警告がトリガーされます:

VM_WARN_ON_ONCE(memchr_inv(lruvec->lrugen.nr_pages, 0, sizeof(lruvec->lrugen.nr_pages)));

また、MGLRUにおけるnr_pagesの過小評価によるユーザー側への影響は、予期せぬOOM(Out-Of-Memory)です。これは、MGLRUがnr_pagesがゼロに達した時点でメモリを回収しようとしませんが、実際にはまだ多くのページが残っているためです。

これを修正するために、reset_batch_size()関数は保留中のバッチをフラッシュする前にRCUの下でCSS_DYING状態をチェックするようにします。死んでいないmemcgは、RCU遅延によるオフライン化に対して元のlruvecを安定して保ちます。一方、死にかけている(dying)memcgの場合、差分は最初の非死亡の祖先にリダイレクトされます。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

責任者

Linux

予約する

2026年08月26日

モデレーション

承諾済み

エントリ

VDB-396646

EPSS

0.00145

アクティビティ

非常低い

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!