{"id":25581,"date":"2026-09-18T04:31:35","date_gmt":"2026-09-17T20:31:35","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90172"},"modified":"2026-09-18T04:31:35","modified_gmt":"2026-09-17T20:31:35","slug":"cve-2026-90172","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90172","title":{"rendered":"CVE-2026-90172 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: smbdirect: destr"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>smb: smbdirect: destroy QP before mem pools on accept failure<\/p>\n<p>On the rdma_accept_failed error path of<br \/>\nsmbdirect_accept_connect_request(), the receive io posted just above is<br \/>\nowned by the QP (recv_io is set to NULL after a successful post).  The<br \/>\nerror path fell through to smbdirect_connection_destroy_mem_pools()<br \/>\nbefore smbdirect_connection_destroy_qp(), so the mem pools and the<br \/>\nrecv_io slab cache were destroyed while that recv_io was still<br \/>\noutstanding on the QP.<\/p>\n<p>The drain in smbdirect_connection_destroy_qp() (ib_drain_qp()) is what<br \/>\nruns the recv completion that returns the recv_io to the free list, so<br \/>\ndestroying the pools first leaves the object outstanding at<br \/>\nkmem_cache_destroy() time (&#8220;Slab cache still has objects&#8221;) and later<br \/>\nfrees it into an already-destroyed mempool (mempool_free_bulk<br \/>\nNULL-pointer dereference).<\/p>\n<p>Give rdma_accept_failed its own teardown that drains the QP first, then<br \/>\ndestroys the mem pools, and returns.  The remaining labels<br \/>\n(post_recv_io_failed onward) run before the recv_io was ever posted, so<br \/>\nthey keep the mem-pools-then-qp order.<\/p>\n<p>The outstanding recv_io at kmem_cache_destroy() time:<\/p>\n<p>[ 3487.344647] =============================================================================<br \/>\n[ 3487.349942] BUG smbdirect_recv_io_cache_ffff88811ba99000 (Not tainted): Objects remaining on __kmem_cache_shutdown()<br \/>\n[ 3487.356078] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n[ 3487.356078]<br \/>\n[ 3487.356738] Object 0xffff8881511c3440 @offset=13376<br \/>\n[ 3487.358464] Allocated in mempool_alloc_noprof+0x18c\/0x290 age=1194 cpu=6 pid=22254<br \/>\n[ 3487.361197]  mempool_alloc_noprof+0x18c\/0x290<br \/>\n[ 3487.361542]  smbdirect_connection_create_mem_pools+0x405\/0x780<br \/>\n[ 3487.361972]  smbdirect_accept_connect_request+0x5a8\/0x1b80<br \/>\n[ 3487.362359]  smbdirect_listen_rdma_event_handler+0x1579\/0x1b90<br \/>\n[ 3487.362779]  cma_cm_event_handler+0x9c\/0x230<br \/>\n[ 3487.363096]  cma_ib_req_handler+0x2682\/0x45d0<br \/>\n[ 3487.363414]  cm_process_work+0x56\/0x3d0<br \/>\n[ 3487.363676]  cm_work_handler+0x8a0e\/0xd000<br \/>\n[ 3487.367496]  process_scheduled_works+0xa07\/0x13a0<br \/>\n[ 3487.367859]  worker_thread+0x7c9\/0xc80<br \/>\n[ 3487.368148]  kthread+0x341\/0x430<br \/>\n[ 3487.368407]  ret_from_fork+0x3a8\/0x7a0<br \/>\n[ 3487.368704]  ret_from_fork_asm+0x1a\/0x30<br \/>\n[ 3487.370307] Slab 0xffffea0005447000 objects=19 used=1 fp=0xffff8881511c0040 flags=0x100000000000240(workingset|head|node=0|zone=2)<br \/>\n[ 3487.372840] &#8212;&#8212;&#8212;&#8212;[ cut here ]&#8212;&#8212;&#8212;&#8212;<br \/>\n[ 3487.373195] WARNING: mm\/slub.c:1244 at __slab_err+0x1a\/0x30, CPU#6: kworker\/6:84\/22254<br \/>\n[ 3487.373759] Modules linked in:<br \/>\n[ 3487.373993] CPU: 6 UID: 0 PID: 22254 Comm: kworker\/6:84 Tainted: G    B               7.1.0-next-20260623+ #88 PREEMPT(lazy)<br \/>\n[ 3487.374778] Tainted: [B]=BAD_PAGE<br \/>\n[ 3487.377830] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04\/01\/2014<br \/>\n[ 3487.378515] Workqueue: ib_cm cm_work_handler<br \/>\n[ 3487.378820] RIP: 0010:__slab_err+0x1a\/0x30<br \/>\n[ 3487.379129] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 e8 36 00 00 00 bf 05 00 00 00 be 01 00 00 00 e8 f7 75 45 00 90  0b 90 c3 cc cc cc cc cc 66 66 66 66 2e 0f 1f 84 00 00 00 00 00<br \/>\n[ 3487.383255] RSP: 0018:ffff888220fc7050 EFLAGS: 00010093<br \/>\n[ 3487.383643] RAX: ffffffff8168e60a RBX: ffff88810955e640 RCX: ffff88821c381d80<br \/>\n[ 3487.384158] RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffffff870fa080<br \/>\n[ 3487.384662] RBP: ffff888220fc7068 R08: ffffffff870fa087 R09: 1ffffffff0e1f410<br \/>\n[ 3487.385192] R10: dffffc0000000000 R11: fffffbfff0e1f411 R12: ffffea0005447210<br \/>\n[ 3487.385674] R13: ffffea0005447000 R14: ffff888220fc7068 R15: ffff88812a8ab300<br \/>\n[ 3487.388932] FS:  0000000000000000(0000) GS:ffff888427e76000(0000) knlGS:0000000000000000<br \/>\n[ 3487.389529] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br \/>\n[ 3487.389934] CR2: 00007ffcf2d84fd8 CR3: 0000000111d64006 CR4: 0000000000f72ef0<br \/>\n[ 3487.390440] PKRU: 55555554<br \/>\n[ 3487.390641] Call Trace:<br \/>\n[ 3487.390826]<br \/>\n[ 3<br \/>\n&#8212;truncated&#8212;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>smb: smbdirect: destroy QP before mem pools on accept failure<\/p>\n<p>On the rdma_accept_failed error path of<br \/>\nsmbdirect_accept_connect_req<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25581","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25581","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=25581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}