CVE-2026-64248 in Linux情報

要約

〜によって VulDB • 2026年07月24日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

MIPS: smp: stop_this_cpu() で死滅するCPUをRCUに報告する

smp_send_stop() はすべてのセカンダリCPUを stop_this_cpu() 内で停止(park)します。この関数は set_cpu_online(false) を介してスケジューラに対してCPUをオフラインとしてマークしますが、RCUには通知しないため、RCUは割り込みが無効化された状態で永遠にスピンし続けるCPUから静穏状態(quiescent state)の発生を期待したままになります。

smp_send_stop() の後に何かがRCUグレース期間を待機していなければこの問題は害はありませんが、そのため見過ごされていました。しかし、コミット 91840be8f710 ("irq_work: Fix use-after-free in irq_work_single() on PREEMPT_RT") 以降では、arch_irq_work_has_interrupt() が false を返すアーキテクチャ(MIPSで使用される asm-generic デフォルトなど)、つまり irq_work の自己IPIを持たない環境において、irq_work_sync() は 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.

この問題は複数のRealtek MIPSスイッチSoC(MIPS interAptiv)で確認され、OpenWrtにおける6.18.33から6.18.34へのカーネルバージョンアップ時に、6.18安定版ブランチ向けパッチのバックポートが行われた後に顕在化しました。このパッチはさらに遡って 6.1 までバックポートされています。

割り込みが無効化された時点で一度 rcutree_report_cpu_dead() を呼び出し、一般的なCPUホットプラグオフラインパスを模倣することで、RCUが停止中のCPUの待機をやめ、グレース期間を正常に完了できるようにします。MIPSではここですべてのCPUをシャットダウンしますが、CPUホットプラグメカニズムを経由しないため、この報告は通常発行されません。死滅するCPUを通常のホットplugオフラインパスの外でRCUに報告することは前例があります:arm64 では cpu_die_early() で同じことが行われています。そこでは、オンライン化しようとして中止しているCPUに対する例外処理であり、MIPSでのデフォルトのシャットダウン動作とは異なります。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-382992

EPSS

0.00161

アクティビティ

非常低い

ソース

Want to stay up to date on a daily basis?

Enable the mail alert feature now!