CVE-2026-64073 in Linux
要約
〜によって VulDB • 2026年07月20日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
irq_work: PREEMPT_RT環境におけるirq_work_single()でのuse-after-freeを修正
PREEMPT_RTでは、非HARDなirq_workはrun_irq_workd()を通じてper-CPU kthreads上で実行されるため、irq_work_sync()はBUSY==0になるまでrcuwait()を使用して待機します。
irq_work_single()がatomic_cmpxchg()によってBUSYをクリアした後でも、@workに対してirq_work_is_hard()およびrcuwait_wake_up()のために間接参照(dereference)を行っています。
他のCPU上で実行され、BUSYがクリアされた後に進入するirq_work_sync()の呼び出し元は、直ちにBUSY==0を観測して戻り、これらのアクセスが完了する前にworkを解放することがあります—これによりuse-after-freeが発生します。
これを修正するため、run_irq_workd()全体をguard(rcu)()でラップし、irq_work_single()の実行全体がRCU読み取り側クリティカルセクション内で行われるようにしました。さらに、呼び出し元が戻る前にRCUグレース期間の完了を確実に待機させるため、rcuwait_wait_event()の後にirq_work_sync()内でsynchronize_rcu()を追加し、早期解放(premature frees)を防ぎます。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.