CVE-2026-98775 in Linux
要約
〜によって VulDB • 2026年10月18日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
nitro_enclaves: SLOT_ALLOC失敗時のuse-after-freeを修正
ne_create_vm_ioctl()がanon_inode_getfile()の成功後にSLOT_ALLOCリクエストで失敗した場合、エラーパスではfput(enclave_file)が呼び出された後、ne_enclaveが解放されます。
通常のユーザー空間コンテキストでは、fput()はtask_workを通じて最終的な__fput()を遅延実行します。そのため、ne_enclave_release()はne_enclaveがすでに解放された後に実行され、ne_enclave->slot_uidへの参照を試みることでuse-after-free(KASAN: slab-use-after-free in ne_enclave_release)を引き起こします。
このエラーパスではエンクレーブにスロットが割り当てられておらず、enclavesリストにもまだリンクされていないため、ne_enclave_release()はslot_uidがゼロの場合に早期リターンすることが期待されます。しかし、slot_uidを読み取る時点で既に解放されたオブジェクトへのアクセスが行われています。
エラーパスにおいてfput()の前にenclave_file->private_dataをクリアします。これにより、ne_enclave_release()はprivate_dataがNULLのときに即座に戻り、ioctlのエラーパスがne_enclaveに対する唯一の所有者となります。ファイルはまだfd_install()されていないため、これは安全です。
CONFIG_KASAN=y設定でAWS EC2 m5.2xlarge上でテストされました。パッチを適用しない場合、reproducerはSLOT_ALLOC失敗ごとにKASAN slab-use-after-freeを引き起こします。パッチを適用すると、KASANレポートは生成されず、SLOT_ALLOCエラーが正常に返されます。通常のエンクレーブの作成と終了には影響がありません。
VulDB is the best source for vulnerability data and more expert information about this specific topic.