JVNDB-2026-025918 | |
LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。sched/mmcid: fixupパスにおけるCIDがMM_CID_UNSETのときのclear_bitによる範囲外アクセス(OOB)を修正しました。mm_cid_fixup_cpus_to_tasks()関数では、rq->currが対象のmmを持ち、かつmm_cid.activeが設定されている場合、遷移ビットをセットする前にcid_in_transit()でCIDがチェックされます。パーCPUモードにおいては、スケジュールイン時にCIDが遅延割り当てされるため、新たにforkやexecされたタスクはmm_cid.cid == MM_CID_UNSETの状態で実行される可能性があります。cid_in_transit()はMM_CID_UNSET(遷移ビットなし)に対してガードを通過させ、それをMM_CID_UNSET | MM_CID_TRANSITに変換して保存します。その後、mm_cid_schedout()はこの値をビット番号としてMM_CID_UNSETをclear_bit()に渡し、範囲外の書き込みを引き起こします。症状としては、これは真のメモリ破壊でありながら任意書き込みではなく、範囲外アクセスの影響が限定的であることが特徴です。MM_CID_UNSETは固定のセントネルBIT(31)であるため、不正な値がmm_cid_schedout()に到達するとcid_from_transit_cid()がMM_CID_UNSETを残し、「cid < max_cids」検査に失敗し、mm_drop_cid() -> clear_bit(MM_CID_UNSET, mm_cidmask(mm))に入ります。cidビットマップはmm_structのslabオブジェクト内(cpu_bitmapとmm_cpus_allowedの後)に配置され、そのサイズはnum_possible_cpus()ビット分です。つまり、ビット31のクリアはビットマップの先から256MiB(2^31 / 8)離れた固定オフセットにおける決定的な範囲外のビットクリアとなります。このアドレスは攻撃者の制御外(固定セントネルによる固定オフセット)であり、操作は単一ビットのクリアに限られます。256MiB先のダイレクトマップ上のメモリにはカーネルオブジェクトのいずれかが配置されており、不特定のカーネルメモリの1ビットを破壊しますが、任意のアドレスや値への書き込みは発生しません。この問題はパーCPU CIDモードでのみ発生し、CIDがまだMM_CID_UNSETである対象mmのアクティブなタスクがCPUで実行されている場合に限られます。つまりfork()/execve()の直後で、そのタスクの次のスケジュールインまでに実際のCIDが割り当てられるまでの間に起こります。さらに、パーCPUからパータスクへのfixup処理(スレッドの終了に伴うモードフォールバックのsched_mm_cid_exit()やdeferred max_cidsの再計算(mm_cid_work_fn()))がこのタスクに適用される際にもトリガーされます。実際にはsyzkallerによって、__schedule -> mm_cid_switch_to内のuse-after-freeとしてKASANが検出しました。問題のclear_bit()はmm_cid_schedout() -> mm_drop_cid()を介してインライン展開されています。遷移ビットの割当てについては、既存のcid_in_transit()チェックに加えてMM_CID_UNSETに対してもガードを設けることで、真のタスク所有CIDのみがビットをセットされるように修正されました。実行中のアクティブなタスクのCPU所有CID(MM_CID_ONCPU)はcid_on_cpu(pcp->cid)の分岐で処理されるため、この経路には到達せず、MM_CID_UNSET(および既に遷移中のケース)を除外するだけで十分です。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.8 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/19 |
| 登録日 | 2026/07/30 |
| 最終更新日 | 2026/07/30 |



