CVE-2026-97530 in Linux情報

要約

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

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

scsi: qla2xxx: 継続IOCBのシグネチャをポーリングする際のソフトロックアップを修正

qla27xx_copy_multiple_pkt() および qla27xx_copy_fpin_pkt() は、次の継続 IOCB が到着したかどうかを判断するために `rsp_q->ring_ptr->signature` を RESPONSE_PROCESSED (0xDEADDEAD) に対してポーリングしています。しかし、到着していない間、リングの進捗やエントリカウントのデクリメントを行わずに cpu_relax() でスピンループします。response_t::signature はバイトオフセット60に位置しますが、継続 IOCB (sts_cont_entry_t / struct sts_cont_entry_ext) はそのオフセット(data[56..59])に生の FC フレームペイロードを含みます。そのため、ペイロードのバイトが偶然 0xDEADDEAD に等しいフレームは、「まだ到着していない」と誤って解釈され、割り込み/DPC コンテキスト内で無限ループが発生し、CPU のソフトロックアップを引き起こします。

また、このポーリング処理自体不要です。qla27xx_copy_multiple_pkt() の呼び出し元(PT_LS4_UNSOL および NVMe purls パス)は既に qla_chk_cont_iocb_avail() によってガードされており、コピー開始前にすべての entry_count IOCB が存在することが保証されています。兄弟関数の __qla_copy_purex_to_buffer() も同様にシグネチャのポーリングを削除し、entry_type == STATUS_CONT_TYPE のガードに依存しています。

両方のヘルパーからシグネチャのビジーウェイト(busy-wait)を除去し、entry_type ガードは維持します。また、FPIN パスを qla_chk_cont_iocb_avail() によってガードすることで、すべての継続 IOCB が到着するまで処理を延期し、次の割り込み時に再処理を行うようにします。これは ELS_AUTH_ELS および PT_LS4_UNSOL の分岐と同等の動作です。これにより、シグネチャフィールドは継続 IOCB では一切読み込まれなくなり、ペイロードエイリアシングによるロックアップが解消されます。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

責任者

Linux

予約する

2026年09月24日

モデレーション

承諾済み

エントリ

VDB-409922

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!