Linuxカーネルにおいて、以下の脆弱性が修正されました。powerpc/rtasのrtas_os_term()内でスケジューリング回避の問題があります。rtas_os_term()のibm,os-term RTAS関数からのビジーステータスを処理するためにrtas_busy_delay()を使用することは安全ではありません。問題の状況として、initプロセスを強制終了しようとするとカーネルパニックが発生します。具体的には、arch/powerpc/kernel/rtas.cの618行目で無効なコンテキストからスリープ関数が呼び出されるバグが発生しています。in_atomic()が1、irqs_disabled()が1、non_blockが0、pidが1、名前がswapper/0、プリエンプトカウントが2などの情報が示されています。トレースログが示す通り、スタックダンプからpanicに至る呼び出し経路が記録されています。対策として、副作用なくibm,os-term RTAS呼び出しを再試行するかどうかの信号を送るrtas_busy_delay_time()を代わりに使用することが推奨されます。
|