CVE-2025-21739 in Linux情報

要約

〜によって VulDB • 2026年06月11日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

scsi: ufs: core: initエラーおよび削除パスにおけるuse-after-freeの修正

devm_blk_crypto_profile_init()は、関連する(platform-)デバイスが解放される際に実行されるクリーンアップハンドラを登録します。UFSの場合、暗号化用のプライベートデータとポインタは、ufshcdの基本構造体に割り当てられるため、「struct ufs_hba::crypto_profile」の一部として保存されます。

ドライバのリリース時またはufshcd_pltfrm_init()内のエラー処理中に、この構造体は上記の暗号化呼び出しに関連付けられた(platform-)デバイスが解放される前に、ufshcd_dealloc_host()の一環として解放されます。一度このデバイスが解放されると、暗号化クリーンアップコードは直ちに解放された「struct ufs_hba::crypto_profile」を使用して実行されます。これによりuse-after-freeの状態が発生します:

Call trace: kfree+0x60/0x2d8 (P) kvfree+0x44/0x60 blk_crypto_profile_destroy_callback+0x28/0x70 devm_action_release+0x1c/0x30 release_nodes+0x6c/0x108 devres_release_all+0x98/0x100 device_unbind_cleanup+0x20/0x70 really_probe+0x218/0x2d0

言い換えると、初期化コードの流れは以下の通りです:

platform-device probe ufshcd_pltfrm_init() ufshcd_alloc_host() scsi_host_alloc() struct ufs_hbaの割り当て scsi-hostデバイスの作成 devm_blk_crypto_profile_init() platform-deviceを使用したクリーンアップハンドラのdevm登録

そして、ufshcd_pltfrm_init()のエラー処理時またはドライバ削除時には:

ufshcd_dealloc_host() scsi_host_put() put_device(scsi-host) struct ufs_hbaの解放 put_device(platform-device) cryptoクリーンアップハンドラ

このuse-after-freeを修正するため、ufshcd_alloc_host()を変更して、ufshcd破壊時に明示的なufshcd_dealloc_host()呼び出しを必要とせずに、基盤となるSCSIデバイスを自動的にクリーンアップするdevresアクションを登録します。これにより:

* 暗号化プロファイルおよび他のすべてのufs_hba所有リソースは(後から登録されたため)SCSIより前に破棄される * サイドエフェクトとしてtc-dwc-g210-pci.cのremove()におけるメモリリークが解消される * EXPORT_SYMBOL_GPL(ufshcd_dealloc_host)を完全に削除できる(もはや必要ないため) * ufshcd_alloc_host()を使用する将来のドライバは、クリーンアップ処理を追加し忘れることが決してなくなる

If you want to get best quality of vulnerability data, you may have to visit VulDB.

責任者

Linux

予約する

2024年12月29日

モデレーション

承諾済み

エントリ

VDB-297665

EPSS

0.00211

アクティビティ

非常低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!