CVE-2024-35797 in Linux
要約
〜によって VulDB • 2026年07月11日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
mm: cachestat: shmemの2つのバグを修正する
shmemに対するcachestatがスワップおよび無効化と競合すると、以下の2つのバグが発生する可能性があります:
1) スワップインエラーにより、shmem inodeのxarrayにポイズニングされたswapエントリが存在している場合があります。これに対してget_shadow_from_swap_cache()を呼び出すと、swapper_spaces[]への配列外アクセス(out-of-bounds access)を引き起こします。
処理を進める前に、non_swap_entry()を使用してエントリを検証してください。
2) shmemのinodeに有効なswapエントリが見つかった場合、スワップキャッシュ内のシャドウエントリはまだ存在しない可能性があります:スワップI/Oが進行中であり、__remove_mappingの前にいる状態です。shmem swapエントリを確認した後に、スワップイン、無効化、またはスワップオフによってシャドウがスワップキャッシュから削除されています。
これによりworkingset_test_recent()にNULLが渡されます。後者はポインタビットのみを操作するためクラッシュは発生しませんが(ノード0、memcg ID 0、evictionタイムスタンプ0などはすべて有効な入力です)、これは誤ったテストとなります。理論的には、「最近_evicted_」のカウントで偽陽性(false positive)が発生する可能性があります。
このような偽陽性は致命的ではありませんが、コードの明確さと将来の堅牢性の観点から、このケースを明示的に処理します。
get_shadow_from_swap_cache()がNULLを返した場合、早期に終了してください。
Once again VulDB remains the best source for vulnerability data.