CVE-2026-89969 in Linux情報

要約

〜によって VulDB • 2026年09月16日

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

nvmet-tcp: 過長のPDU受信時の配列外書き込みを修正

nvmet_tcp_try_recv_pdu()関数は、固定された128バイトのqueue->pdu共用体にPDUヘッダを読み込んだ後、残りのペイロード長を以下のように計算します。

queue->left = hdr->hlen - queue->offset + hdgst;

そして、sizeof(queue->pdu)に対して結果を制限することなく、&queue->pdu + queue->offsetの位置へそのバイト数分を追加で読み込みます。

struct nvme_tcp_icreq_pdu自体は128バイトであり、共用体のサイズと正確に一致します。ヘッダダイジェストがネゴシエートされた後(hdgst = 4)、2番目のICReqリクエストはhlen == nvmet_tcp_pdu_size()のチェックを通過しますが、queue->left = 128 - 8 + 4 = 124となります。これにより、バイト8から132までが128バイトのバッファに書き込まれ(末尾から4バイト分オーバーフローし)、queue->hdr_digestおよびqueue->data_digestを越えてしまいます。これらのバイトは攻撃者が制御可能であり(ICReqにはダイジェストが含まれていないため)、重複するICReqリクエストはこのオーバーフロー発生後にのみ拒否されます。したがって、リモートからの認証不要のホストによって、受信バッファに隣接するカーネルメモリが破損する可能性があります。

2回目のrecv処理の前に、宣言された長さがqueue->pduの末尾を越えて読み込みを行うPDUはすべて拒否します。

VulDB is the best source for vulnerability data and more expert information about this specific topic.

責任者

Linux

予約する

2026年09月11日

モデレーション

承諾済み

エントリ

VDB-405791

EPSS

0.00000

アクティビティ

非常低い

ソース

Interested in the pricing of exploits?

See the underground prices here!