{"id":25703,"date":"2026-09-18T04:31:45","date_gmt":"2026-09-17T20:31:45","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90294"},"modified":"2026-09-18T04:31:45","modified_gmt":"2026-09-17T20:31:45","slug":"cve-2026-90294","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90294","title":{"rendered":"CVE-2026-90294 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nIB\/isert: delay the f"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>IB\/isert: delay the final Login Response until the session is registered<\/p>\n<p>isert_put_login_tx() puts the final Login Response on the wire before<br \/>\n__transport_register_session(), which iscsi_post_login_handler() reaches<br \/>\nonly after iscsi_target_do_login() returns.  An initiator that issues a<br \/>\nSCSI command as soon as it sees that response can have it executed against<br \/>\nan se_session whose se_tpg is still NULL, and the ib-comp-wq worker oopses<br \/>\non the NULL dereference.<\/p>\n<p> Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI<br \/>\n KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f]<br \/>\n CPU: 0 UID: 0 PID: 178 Comm: kworker\/0:1H Not tainted 7.2.0-rc5-V2CTL-gf5098b6bae76 #10 PREEMPT(lazy)<br \/>\n 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<br \/>\n Workqueue: ib-comp-wq ib_cq_poll_work<br \/>\n RIP: 0010:target_submit+0xbe\/0x390<br \/>\n 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<br \/>\n RSP: 0018:ffff8881058cfa78 EFLAGS: 00010206<br \/>\n RAX: dffffc0000000000 RBX: ffff88810c78c6f0 RCX: ffffffff964bb363<br \/>\n RDX: 000000000000000f RSI: 00000000fffffe00 RDI: 0000000000000078<br \/>\n RBP: 1ffff11020b19f52 R08: 0000000000000001 R09: ffffed1020b19f52<br \/>\n R10: 0000000000000003 R11: ffff88810596c000 R12: 0000000000000000<br \/>\n R13: ffff88810c61b000 R14: ffff88810c6a3400 R15: ffff88810c61b044<br \/>\n FS:  0000000000000000(0000) GS:ffff8881822b2000(0000) knlGS:0000000000000000<br \/>\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br \/>\n CR2: 00007f1f1b83c000 CR3: 000000006fe72001 CR4: 0000000000770ef0<br \/>\n PKRU: 55555554<br \/>\n Call Trace:<\/p>\n<p>  ? __pfx__raw_spin_lock_bh+0x10\/0x10<br \/>\n  ? __pfx_target_submit+0x10\/0x10<br \/>\n  ? mutex_lock+0x81\/0xe0<br \/>\n  ? __pfx_mutex_lock+0x10\/0x10<br \/>\n  ? iscsit_execute_cmd+0x650\/0x850<br \/>\n  iscsit_sequence_cmd+0x186\/0x3d0<br \/>\n  iscsit_process_scsi_cmd+0x87\/0x300<br \/>\n  isert_recv_done+0x1002\/0x2390<br \/>\n  ? __pfx_isert_recv_done+0x10\/0x10<br \/>\n  ? rxe_poll_cq+0x253\/0x3d0<br \/>\n  ? finish_task_switch.isra.0+0x1dc\/0xa70<br \/>\n  __ib_process_cq+0xe1\/0x390<br \/>\n  ib_cq_poll_work+0x46\/0x150<br \/>\n  process_one_work+0x633\/0x1030<br \/>\n  ? assign_work+0x11d\/0x370<br \/>\n  worker_thread+0x45b\/0xd10<br \/>\n  ? __pfx_worker_thread+0x10\/0x10<br \/>\n  ? __pfx_worker_thread+0x10\/0x10<br \/>\n  kthread+0x2c6\/0x3b0<br \/>\n  ? recalc_sigpending+0x15c\/0x1e0<br \/>\n  ? __pfx_kthread+0x10\/0x10<br \/>\n  ret_from_fork+0x36e\/0x5a0<br \/>\n  ? __pfx_ret_from_fork+0x10\/0x10<br \/>\n  ? __switch_to+0x572\/0xdd0<br \/>\n  ? __pfx_kthread+0x10\/0x10<br \/>\n  ret_from_fork_asm+0x1a\/0x30<\/p>\n<p> Modules linked in:<br \/>\n &#8212;[ end trace 0000000000000000 ]&#8212;<\/p>\n<p>Delay the final Login Response instead.  isert_get_rx_pdu() runs from<br \/>\niscsi_target_rx_thread() after conn-&gt;rx_login_comp, completed by<br \/>\niscsi_post_login_handler() after __transport_register_session(); iscsi-TCP<br \/>\nand cxgbit already take PDUs from that thread, isert alone does not.  The<br \/>\nbuffers are still posted first, so the initiator&#8217;s first command does not<br \/>\nmeet an empty receive queue and nothing depends on RNR flow control, and<br \/>\nthe header and payload live in isert_conn, not in the struct iscsi_login<br \/>\nthat iscsi_target_nego_release() frees first.<\/p>\n<p>Over rxe, 400 login cycles per run, the oops appeared in 10 of 20<br \/>\nunpatched runs and in none of 20 runs with this patch.  An<br \/>\ninitiator that never waits is handled by the next patch.<\/p>\n<p>Not tested: iWARP, discovery sessions over iSER, and real HCAs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>IB\/isert: delay the final Login Response until the session is registered<\/p>\n<p>isert_put_login_tx() puts the final Login Response on the<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25703","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}