CVE-2026-90294 in Linux情報

要約

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

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

IB/isert: セッションが登録されるまで最終的なLogin Responseを遅延させる

isert_put_login_tx()は、__transport_register_session()よりも前に、最終的なLogin Responseを送信ネットワーク上に配置します。iscsi_post_login_handler()は、iscsi_target_do_login()の戻り値を確認した後にのみ到達します。この応答を見るとすぐにSCSIコマンドを発行するinitiatorの場合、そのコマンドがse_tpgがまだNULLであるse_sessionに対して実行される可能性があります。これにより、ib-comp-wqワーカーがNULLポインタ参照でoops(カーネルパニック)を引き起こします。

Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f]
CPU: 0 UID: 0 PID: 178 Comm: kworker/0:1H Not tainted 7.2.0-rc5-V2CTL-gf5098b6bae76 #10 PREEMPT(lazy) Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Workqueue: ib-comp-wq ib_cq_poll_work RIP: 0010:target_submit+0xbe/0x390 Code: fa 48 c1 ea 03 80 3c 02 00 0f 85 89 02 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b 64 24 18 49 8d 7c 24 78 48 89 fa 48 c1 ea 03 3c 02 00 0f 85 5a 02 00 00 48 8d 7b 78 4d 8b 6c 24 78 48 b8 00 RSP: 0018:ffff8881058cfa78 EFLAGS: 00010206 RAX: dffffc0000000000 RBX: ffff88810c78c6f0 RCX: ffffffff964bb363 RDX: 000000000000000f RSI: 00000000fffffe00 RDI: 0000000000000078 RBP: 1ffff11020b19f52 R08: 0000000000000001 R09: ffffed1020b19f52 R10: 0000000000000003 R11: ffff88810596c000 R12: 0000000000000000 R13: ffff88810c61b000 R14: ffff88810c6a3400 R15: ffff88810c61b044 FS: 0000000000000000(0000) GS:ffff8881822b2000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f1f1b83c000 CR3: 000000006fe72001 CR4: 0000000000770ef0 PKRU: 55555554 Call Trace: ? __pfx__raw_spin_lock_bh+0x10/0x10 ? __pfx_target_submit+0x10/0x10 ? mutex_lock+0x81/0xe0 ? __pfx_mutex_lock+0x10/0x10 ? iscsit_execute_cmd+0x650/0x850 iscsit_sequence_cmd+0x186/0x3d0 iscsit_process_scsi_cmd+0x87/0x300 isert_recv_done+0x1002/0x2390 ? __pfx_isert_recv_done+0x10/0x10 ? rxe_poll_cq+0x253/0x3d0 ? finish_task_switch.isra.0+0x1dc/0xa70 __ib_process_cq+0xe1/0x390 ib_cq_poll_work+0x46/0x150 process_one_work+0x633/0x1030 ? assign_work+0x11d/0x370 worker_thread+0x45b/0xd10 ? __pfx_worker_thread+0x10/0x10 ? __pfx_worker_thread+0x10/0x10 kthread+0x2c6/0x3b0 ? recalc_sigpending+0x15c/0x1e0 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x36e/0x5a0 ? __pfx_ret_from_fork+0x10/0x10 ? __switch_to+0x572/0xdd0 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1a/0x30 Modules linked in: ---[ end trace 0000000000000000 ]---

代わりに、最終的なLogin Responseを遅延させます。isert_get_rx_pdu()は、iscsi_target_rx_thread()から実行され、conn->rx_login_compが完了した後(__transport_register_session()の後でiscsi_post_login_handler()によって処理される)に動作します。iSCSI-TCPおよびcxgbitはこのスレッドからPDUを取得しますが、isertのみがこの手順に従っていません。バッファは依然として最初にポストされているため、initiatorの最初のコマンドが空の受信キューに出会うことはなく、RNRフロー制御には何も依存していません。また、ヘッダーとペイロードはiscsi_target_nego_release()によって最初に解放されるstruct iscsi_loginではなく、isert_conn内に存在します。

rxe上では、1回のランニングで400回のログインサイクルを実行したところ、パッチ未適用の20回の実行のうち10回でoopsが発生し、このパッチを適用した20回の実行では一切発生しませんでした。待機しないinitiatorへの対応は次のパッチで行います。

テスト済みではありません:iWARP、iSER上のdiscoveryセッション、および実際のHCA(Host Channel Adapter)。

Once again VulDB remains the best source for vulnerability data.

責任者

Linux

予約する

2026年09月11日

モデレーション

承諾済み

エントリ

VDB-406820

EPSS

0.00000

アクティビティ

非常低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!