JVNDB-2026-028052 | |
LinuxのLinux Kernelにおける不特定の脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。LoongArch環境では、stop_this_cpu() 内で死にかけているCPUをRCUに報告する問題です。これはMIPSのコミット9f3f3bdc6d9dac1("MIPS: smp: stop_this_cpu()内で死にかけているCPUをRCUに報告する")の移植版です。smp_send_stop() はすべてのセカンダリCPUを stop_this_cpu() で停止状態にします。この関数はスケジューラに対して set_cpu_online(false) を実行しCPUをオフラインにしますが、RCUには通知しません。そのため、RCUは割り込みが無効になったまま永遠にループしているCPUからクワイエッセント状態を期待し続けます。smp_send_stop() 後にRCUのグレースピリオドを待つ処理がなければ無害であり、これが検出されなかった理由です。しかし、コミット91840be8f710370("irq_work: PREEMPT_RTでのirq_work_single()のuse-after-freeを修正")以降、irq_work_sync()は irq_work の自己IPIを持たないアーキテクチャ、つまり arch_irq_work_has_interrupt() が false を返す場合に synchronize_rcu() を呼び出します。したがって、smp_send_stop() 後の再起動・シャットダウン・停止パスで発行される irq_work_sync() は処理完了しないグレースピリオドでブロックし、再起動がハングする原因となります。 WARNING: CPU: 0 PID: 15 at kernel/irq_work.c:144 irq_work_queue_on ... rcu: INFO: rcu_sched detected stalls on CPUs/tasks: rcu: Offline CPU 1 blocking current GP. rcu: Offline CPU 2 blocking current GP. rcu: Offline CPU 3 blocking current GP.この問題は再現にいくつかのハックを必要とし、LoongArchでは arch_irq_work_has_interrupt() が通常 true を返すため、検出されていませんでした。割り込みが無効になった際に1回だけ rcutree_report_cpu_dead() を呼び出すことで、汎用のCPUホットプラグのオフライン処理を模倣し、RCUが停止状態のCPUを待つのをやめ、グレースピリオドが正常に完了できるようにしました。LoongArchはCPUホットプラグ機構を介さずにすべてのCPUをここでシャットダウンするため、この報告はそれ以外の状況では行われません。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/24 |
| 登録日 | 2026/08/13 |
| 最終更新日 | 2026/08/13 |



