| 概要 |
Linuxカーネルにおいて、以下の脆弱性が修正されました:crypto: ccp - __sev_platform_shutdown_locked() に常にエラーポインタを渡すようにする問題です。コミット9770b428b1a2("crypto: ccp - SEV/SNPの初期化およびシャットダウンのためのdev_info/errメッセージを移動")にて、呼び出し元でメッセージを発行する必要がないようにエラーメッセージの出力を移動した際に、__sev_firmware_shutdown() が NULL 引数で __sev_platform_shutdown_locked() を呼び出すケースを見落としていました。これにより、サスペンドからディスクへ移行するシャットダウン経路上で NULL ポインタ参照が発生していました。具体的には、カーネルモードでのスーパーバイザ読み取りアクセス違反 (#PF) が発生し、スタックトレースやCPU情報、アドレスなどのデバッグ情報が示されていました。この問題は、呼び出し元で関数ローカルのエラー変数へのポインタを渡すように修正されました。修正後は、ccpデバイスのサスペンド時にエラーが正しく表示されるようになり、例えば「sev command 0x2 timed out, disabling PSP」などのメッセージが出力されます。なお、このドライバは、異なる関数間で情報を保持するための適切なI/O構造体を渡すように整理する必要があり、そうしなければ将来的にも同様の問題が発生する恐れがあります。
|