JVNDB-2026-016877 | |
LinuxのLinux Kernelにおける競合状態に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました:cgroupにおけるタスクの移動とイテレーション間の競合状態の修正です。タスクがcss_setから移動される際、cgroup_migrate_add_task()は最初にlist_move_tail(&task-cg_list, &cset-mg_tasks);を通じてcset-tasksからcset-mg_tasksへタスクを移動します。もしcss_task_iterが現在it-task_posでこのタスクを指している場合、css_set_move_task()はイテレータを有効に保つためcss_task_iter_skip()を呼び出します。しかし、タスクはすでに-mg_tasksへ移動しているため、イテレータは元のtasksリストではなくmg_tasksリストに対して進められてしまいます。その結果、cset-tasks上の残りのタスクやcset-mg_tasksにキューイングされたタスクがイテレーションでスキップされる可能性があります。これを修正するために、task-cg_listをcset-tasksから切り離す前にcss_set_skip_task_iters()を呼び出します。これにより、すべてのアクティブなイテレータがcset-tasks上の次のタスクへ進み、タスクが同時に移動されている場合でもイテレーションを正しく継続できます。この競合は実際には計測なしでは発生しにくいものの、cgroup_procs_show()を人工的に遅延させることで再現可能です。例えばAndroidデバイスでは、一時的に/sys/kernel/cgroup/cgroup_testのノブを追加してcgroup_procs_show()に遅延を注入し、次の手順を行います:1) 3つの長時間実行タスク(PID 101, 102, 103)を生成します。2) テスト用cgroupを作成し、それらのタスクを移動します。3) /sys/kernel/cgroup/cgroup_test経由で大きな遅延を有効化します。4) 1つのシェルでテストcgroupからcgroup.procsを読み取ります。5) 遅延時間内に別のシェルでPID 102を異なるcgroup.procsファイルへ書き込み移動させます。この構成下で、cgroup.procsは断続的にPID 101のみを表示しPID 103をスキップすることがあります。移動が完了すると、再度ファイルを読むと期待通りすべてのタスクが表示されます。なお、この変更ではcss_set_move_task()内の既存のcss_set_skip_task_iters()呼び出しを除去できません。cgroup_migrate_add_task()内の新規呼び出しは、タスクがまだcset-tasks上にある間に移動と競合するイテレータのみを扱います。一方で、タスクがすでにcset-mg_tasksへ移動した後にイテレータが開始される場合もあります。もしcss_set_move_task()からcss_set_skip_task_iters()を削除すると、そのようなイテレータは移動中のタスクを指し続け、css_task_iter_advance()が移動先のcss_set上で誤動作(クラッシュや無限ループを含む)を引き起こす恐れがあります。移動とイテレーションの競合時間は非常に短く、css_task_iterはホットパスではありません。最悪の場合、移動中のプロセスの最初のスレッドにイテレータが位置している際に、cgroup_migrate_add_task()はcss_set_skip_task_iters()を使用して複数のタスクをスキップする必要があります。しかしこれは移動とイテレーションが実際に競合した時のみ発生するため、本修正による性能影響は正当な修正効果に比べて無視できる程度です。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 4.7 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/08 |
| 登録日 | 2026/05/25 |
| 最終更新日 | 2026/05/25 |



