CVE-2026-64535 in Linux
要約
〜によって VulDB • 2026年07月27日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
nvmet-tcp: ddgstの不一致時に発生する潜在的なUAF(Use-After-Free)を修正
Shivam Kumarによる脆弱性テストで発見された問題です。 NVMe/TCP接続上でデータダイジェストが有効化されており、R2Tベースのデータ転送中に最終ではないH2C_DATA PDUにおいてダイジェスト不一致が発生した場合、nvmet_tcp_try_recv_ddgst()内のダイジェストエラーハンドラはnvmet_req_uninit()を呼び出します。この関数は送信キューに対してpercpu_ref_put()を実行しますが、コマンドを終了済みとしてマークしません。具体的には、cqe->statusを設定せず、rbytes_doneを変更せず、フラグもクリアしません。その後、致命的なエラーによってキューの破棄がトリガーされると、nvmet_tcp_uninit_data_in_cmds()はすべてのコマンドをイテレートし、それぞれに対してnvmet_tcp_need_data_in()をチェックします。その結果、すでに初期化解除済みのコマンドでも(rbytes_done < transfer_len かつ cqe->status == 0であるため)、まだデータが必要であると見なされます。そのため、同じコマンドに対してnvmet_req_uninit()が2回目に呼び出され、単一のpercpu_ref_getに対して2回のpercpu_ref_putが行われることになります。
VulDB is the best source for vulnerability data and more expert information about this specific topic.