JVNDB-2026-008344 | |
LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました:arm64/fpsimd: signal: SVEコンテキストの復元の修正です。SMEがサポートされている場合、SVEシグナルコンテキストの復元がいくつかの方法で誤動作し、カーネルが境界外メモリを読み取る可能性があります。また、無効な状態にタスクを置き(致命的なフォルトを引き起こす可能性があります)たり、タスクをSIGKILLで終了させる可能性もあります。(1)SVE_SIG_FLAG_SMが設定された状態でコンテキストを復元すると、SVCR.SMがセットされ(かつsve_stateがNULLでなく)、TIF_SMEがクリアされている無効な状態にタスクが置かれます。その結果、境界外メモリの読み取りやSIGKILLによるタスクの終了が発生します。これは、SVEシグナルコンテキストがユーザースペースによって変更されているか、別のタスクのコンテキストで保存されている(例:CRIU)などの異例ながら正当なケースでのみ発生します。通常、SVE_SIG_FLAG_SMがあるSVE信号コンテキストではTIF_SMEが既にセットされています。この状態では、task_fpsimd_load()はSVCRの復元前にSMCR_ELxを設定せず(ハードウェアに任意の値を残したまま)、その後sve_load_state()を介してメモリからストリーミングモードのSVEレジスタを復元しようとします。SMCR_ELx.LENの値がタスクのストリーミングSVEベクトル長より大きいため、タスクの割り当てられたsve_state外のメモリを読み取ってしまい、無関係なデータの読み込みやフォルトを引き起こす可能性があります。これによりストリーミングSVEレジスタに秘密情報が読み込まれる可能性がありますが、これらの値は決して公開されません。TIF_SMEがクリアされているため、fpsimd_bind_task_to_cpu()はCPACR_ELx.SMENを設定してEL0でのストリーミングモードSVEレジスタへのアクセスをトラップし、直接アクセスできないようにしています。さらにfpsimd_save_user_state()は保存前に生のベクトル長を検証するため、秘密値がメモリに保存されてptraceやシグナルなどを通じて観測されることはありません。生のベクトル長がタスクの予期されるベクトル長と一致しない場合、fpsimd_save_user_state()はタスクに致命的なSIGKILLを送信します。そのためタスクはユーザースペースの実行後しばらくして終了される可能性があります。(2)SVE_SIG_FLAG_SMがクリアされた状態でコンテキストを復元すると、タスクのSVCR.SMをクリアしません。復元前にSVCR.SMが設定されていた場合、タスクは予期せずストリーミングモードのままとなり、一部のレジスタ状態が一貫性なく組み合わされますが、カーネルの観点ではタスクは正当な状態にあります。これはsigreturnシステムコールへの入り口でSVCR.SMはクリアされますが、その後ptraceでSVCR.SMが設定されたような異例ながら正当なケースでのみ発生します。これらの場合、提供されたSVEレジスタデータは非ストリーミングSVEベクトル長を使ってタスクのsve_stateにロードされ、FPSIMDレジスタはストリーミングSVEベクトル長を使ってマージされます。本修正では(1)についてSVCR.SMを設定するときにTIF_SMEを設定し、タスクのsme_stateが割り当て済みであることを保証しますが、ライブのZA状態が含まれる可能性があるためゼロクリアは行いません。(2)についてはSVE_SIG_FLAG_SMがクリアされたSVEシグナルコンテキストを復元する際にSVCR.SMをクリアします。また一貫性を保つために、sve_state/sme_stateの割り当て直後、レジスタ状態の復元直前にSVCR、TIF_SVE、TIF_SME、fp_typeの操作を移動しました。これにより信号コンテキストからのレジスタデータ読み込み中にフォルトが発生しても、これらの状態が一貫して修正されることを確実にしました。フォルト発生時の正確な状態に依存するソフトウェアは想定していません。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.1 (重要) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/02/04 |
| 登録日 | 2026/03/24 |
| 最終更新日 | 2026/03/24 |



