JVNDB-2026-019499 | |
LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、次の脆弱性が修正されました。cgroupのrmdir時に発生していたcss percpu_refのキル処理を、cgroupが空になるまで延期するようにしました。v7.0以降の一連のコミットでrmdir処理を再設計し、サブシステムの-css_offline()がcgroup内でカーネル側の作業がまだ行われている間は実行されないというコントローラーの不変条件を満たすように対応しました。[1] d245698d727aではtask csetのunlink処理をdo_exit()からfinish_task_switch()に移動し、タスクのスケジューリング停止後にリンクが解除されるようにしました。これにより、exit_signals()後のタスクが最終コンテキストスイッチまでcset-tasksに残留し、ユーザ空間の期待とカーネル側の待機条件に乖離が生じました。[2]-[5]ではこの乖離を調整しています。[2]では終了中のタスクをcgroup.procsから除外し、[3]ではrmdir(2)をTASK_UNINTERRUPTIBLE状態で待機させ、[4]で待機条件を修正し、[5]でnr_dying_subsys_*を同期的に可視化しました。しかし、[3]のcgroup_drain_dying()の待機は根本的な問題解決にはならず、rmdir呼び出し元がゾンビの再逐次処理者である場合にデッドロックが発生しました。そのため、cssのキル処理側は非同期で実行されるべきであり、-css_offline()は既にpercpu_ref_kill_and_confirm()により非同期でcss_killed_work_fn()から実行されています。修正内容は、すべてのタスクがcgroupを離れるまでこの処理を開始しないようにすることです。rmdirのユーザから見える側はcgroup.procs等が空になるとすぐに戻りますが、-css_offline()はcgroupが完全に空になるまで実行されません。元の再現テスト(pidnsの解放およびゾンビ再逐次処理者の挙動確認)が成功し、コミットごとの決定論的再現テストも行われています。cgroup_apply_control_disable()に存在した既存の競合も同様の形で、kill_css()は同期的に実行され、exit_signals()後のタスクがまだcsetにリンクされたまま-css_offline()が先行することがありました。本パッチでは同期的動作を保持しつつ、後続のパッチでkill_css_finish()の遅延実行を行います。この方法は適切であり、大きな問題は見当たりません。変更はやや侵襲的ですが過度ではなく、安定版へのバックポートが可能です。問題があれば、一連のコミット[1]-[5]を元に戻して開発ブランチで再検討します。v2では遅延破棄処理の周囲に明示的なcgroup_get()/cgroup_put()を追加して参照を固定しました。v1は本質的に破綻していませんでしたが、この明示的参照により非明示の不変条件への依存が排除されています。以上のように、cgroupのrmdir処理におけるタスク終了管理とcssキル処理を改善したことで、デッドロックや不正な状態遷移を防止しました。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/28 |
| 登録日 | 2026/06/12 |
| 最終更新日 | 2026/06/12 |



