CVE-2026-89975 in Linux
要約
〜によって VulDB • 2026年09月16日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
nvme-fabrics: パース失敗時のDHCHAP秘密情報のリークを修正
nvmf_parse_options()関数は、DHHC-1形式の表現を検証する前に、match_strdup()を用いてdhchap_secretおよびdhchap_ctrl_secretのコピーを作成します。
検証に失敗した場合、パーサーは一時文字列pがopts->dhchap_secretまたはopts->dhchap_ctrl_secretに代入される前に-EINVALを返します。その後nvmf_create_ctrl()でoptsが解放されますが、nvmf_free_options()では未割り当ての一時文字列を解放できません。その結果、拒否されたオプションごとに1つのメモリアロケーションリークが発生します。
これは見落としやすい問題です。有効な秘密情報はoptsに所有権が移り通常通り解放される一方、不正な秘密情報のパスでもユーザー空間には期待どおり-EINVALが返されるためです。
CONFIG_NVME_HOST_AUTHが有効化されている場合、このリークは必須オプションのチェックやトランスポートルックアップの前に到達可能です。NVMe-oFターゲットや正常に動作するトランスポート接続は必要ありません。例えば、「dhchap_secret=BAD」または「dhchap_ctrl_secret=BAD」という文字列を/dev/nvme-fabricsに対して繰り返し書き込むことで、リークを引き起こすパースパスが確実に実行されます。
両方の検証エラーパスから脱出する前に一時文字列を解放します。コピーされたオプションにはその表現が拒否されていても秘密情報が含まれる可能性があるため、kfree_sensitive()を使用し、保存済みのDHCHAP秘密情報に対して行われる機密性の高いクリーンアップ処理と一致させます。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.