JVNDB-2026-014821 | |
LinuxのLinux Kernelにおける不特定の脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。sched_extにおける問題で、ddsp_dsq_idの古い直接ディスパッチ状態が修正されました。p-scx.ddsp_dsq_idが設定されたまま(SCX_DSQ_INVALIDでない)になるため、次のウェイクアップ時にops.select_cpu()がscx_bpf_dsq_insert()を呼び出す際、mark_direct_dispatch()で誤った警告が発生していました。警告例としては、WARNING: kernel/sched/ext.c:1273 at scx_dsq_insert_commit+0xcd/0x140が挙げられます。この問題の根本原因は、ddsp_dsq_idがdispatch_enqueue()でのみクリアされており、この関数は直接ディスパッチの判定を処理またはキャンセルするすべての経路で呼び出されるわけではなかったことにあります。修正は以下の適切な箇所で状態をクリアすることにより行われました。- direct_dispatch(): 直接ディスパッチ状態をローカル変数にキャッシュし、同期パスではdispatch_enqueue()の前に状態をクリアします。遅延パスではprocess_ddsp_deferred_locals()がその状態を消費するまで保持します。- process_ddsp_deferred_locals(): ディスパッチ状態をローカル変数にキャッシュし、dispatch_to_local_dsq()呼び出し前に状態をクリアします。dispatch_to_local_dsq()はタスクを別のランキューに移動させる可能性があるためです。- do_enqueue_task(): 直接ディスパッチの判定が無視されるenqueueパス(ローカル、グローバル、バイパスのフォールバック)で状態をクリアします。- dequeue_task_scx(): dispatch_dequeue()の後に状態をクリアし、遅延ディスパッチのキャンセルとholding_cpuの競合を処理します。これにより保留中の直接ディスパッチがキャンセルされるすべての場合をカバーします。- scx_disable_task(): タスクが現在のスケジューラから遷移する際に直接ディスパッチ状態をクリアします。ウェイクアップしたタスクは外部スケジューラのops.select_cpu()により直接ディスパッチ状態が設定され、SCX_OPS_ALLOW_QUEUED_WAKEUPが設定されている場合、ttwu_queue_wakelist()を経由してwake_listに入ることがあります。これらのタスクはランキュー上におらずscx_bypass()でイテレートされないため、状態がクリアされません。この状態をクリアしないと、その後のSCXスケジューラが同じタスクを直接ディスパッチしようとした際に、mark_direct_dispatch()のWARN_ON_ONCE()が発生してしまいます。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/01 |
| 登録日 | 2026/05/11 |
| 最終更新日 | 2026/05/11 |



