{"id":"CVE-2026-90172","revision":null,"records":[{"revision":"133890bedc6645a19e7e2bf7d955cfd3","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-90172","aliases":[],"title":"smb: smbdirect: destroy QP before mem pools on accept failure","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: smbdirect: destroy QP before mem pools on accept failure\n\nOn the rdma_accept_failed error path of\nsmbdirect_accept_connect_request(), the receive io posted just above is\nowned by the QP (recv_io is set to NULL after a successful post).  The\nerror path fell through to smbdirect_connection_destroy_mem_pools()\nbefore smbdirect_connection_destroy_qp(), so the mem pools and the\nrecv_io slab cache were destroyed while that recv_io was still\noutstanding on the QP.\n\nThe drain in smbdirect_connection_destroy_qp() (ib_drain_qp()) is what\nruns the recv completion that returns the recv_io to the free list, so\ndestroying the pools first leaves the object outstanding at\nkmem_cache_destroy() time (\"Slab cache still has objects\") and later\nfrees it into an already-destroyed mempool (mempool_free_bulk\nNULL-pointer dereference).\n\nGive rdma_accept_failed its own teardown that drains the QP first, then\ndestroys the mem pools, and returns.  The remaining labels\n(post_recv_io_failed onward) run before the recv_io was ever posted, so\nthey keep the mem-pools-then-qp order.\n\nThe outstanding recv_io at kmem_cache_destroy() time:\n\n[ 3487.344647] =============================================================================\n[ 3487.349942] BUG smbdirect_recv_io_cache_ffff88811ba99000 (Not tainted): Objects remaining on __kmem_cache_shutdown()\n[ 3487.356078] -----------------------------------------------------------------------------\n[ 3487.356078]\n[ 3487.356738] Object 0xffff8881511c3440 @offset=13376\n[ 3487.358464] Allocated in mempool_alloc_noprof+0x18c/0x290 age=1194 cpu=6 pid=22254\n[ 3487.361197]  mempool_alloc_noprof+0x18c/0x290\n[ 3487.361542]  smbdirect_connection_create_mem_pools+0x405/0x780\n[ 3487.361972]  smbdirect_accept_connect_request+0x5a8/0x1b80\n[ 3487.362359]  smbdirect_listen_rdma_event_handler+0x1579/0x1b90\n[ 3487.362779]  cma_cm_event_handler+0x9c/0x230\n[ 3487.363096]  cma_ib_req_handler+0x2682/0x45d0\n[ 3487.363414]  cm_process_work+0x56/0x3d0\n[ 3487.363676]  cm_work_handler+0x8a0e/0xd000\n[ 3487.367496]  process_scheduled_works+0xa07/0x13a0\n[ 3487.367859]  worker_thread+0x7c9/0xc80\n[ 3487.368148]  kthread+0x341/0x430\n[ 3487.368407]  ret_from_fork+0x3a8/0x7a0\n[ 3487.368704]  ret_from_fork_asm+0x1a/0x30\n[ 3487.370307] Slab 0xffffea0005447000 objects=19 used=1 fp=0xffff8881511c0040 flags=0x100000000000240(workingset|head|node=0|zone=2)\n[ 3487.372840] ------------[ cut here ]------------\n[ 3487.373195] WARNING: mm/slub.c:1244 at __slab_err+0x1a/0x30, CPU#6: kworker/6:84/22254\n[ 3487.373759] Modules linked in:\n[ 3487.373993] CPU: 6 UID: 0 PID: 22254 Comm: kworker/6:84 Tainted: G    B               7.1.0-next-20260623+ #88 PREEMPT(lazy)\n[ 3487.374778] Tainted: [B]=BAD_PAGE\n[ 3487.377830] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04/01/2014\n[ 3487.378515] Workqueue: ib_cm cm_work_handler\n[ 3487.378820] RIP: 0010:__slab_err+0x1a/0x30\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 <0f> 0b 90 c3 cc cc cc cc cc 66 66 66 66 2e 0f 1f 84 00 00 00 00 00\n[ 3487.383255] RSP: 0018:ffff888220fc7050 EFLAGS: 00010093\n[ 3487.383643] RAX: ffffffff8168e60a RBX: ffff88810955e640 RCX: ffff88821c381d80\n[ 3487.384158] RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffffff870fa080\n[ 3487.384662] RBP: ffff888220fc7068 R08: ffffffff870fa087 R09: 1ffffffff0e1f410\n[ 3487.385192] R10: dffffc0000000000 R11: fffffbfff0e1f411 R12: ffffea0005447210\n[ 3487.385674] R13: ffffea0005447000 R14: ffff888220fc7068 R15: ffff88812a8ab300\n[ 3487.388932] FS:  0000000000000000(0000) GS:ffff888427e76000(0000) knlGS:0000000000000000\n[ 3487.389529] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[ 3487.389934] CR2: 00007ffcf2d84fd8 CR3: 0000000111d64006 CR4: 0000000000f72ef0\n[ 3487.390440] PKRU: 55555554\n[ 3487.390641] Call Trace:\n[ 3487.390826]  <TASK>\n[ 3\n---truncated---","state":0,"publishedAt":"2026-09-17T16:06:59.794+00:00","modifiedAt":"2026-10-19T08:59:09.521+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/smb/smbdirect/accept.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"eb3ed1e9048cf7b2a38112f48e0f1b772bb7860d\",\n                            \"lessThan\": \"959813a3752b459ed77b0b3eaf30b9f4c6204260\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eb3ed1e9048cf7b2a38112f48e0f1b772bb7860d\",\n                            \"lessThan\": \"383a9480f5f40bc46454cce27ccfad532cedad9c\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/smb/smbdirect/accept.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"7.1\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"7.1\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.6\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","score":7.5,"severity":"HIGH"}],"references":["https://git.kernel.org/stable/c/959813a3752b459ed77b0b3eaf30b9f4c6204260","https://git.kernel.org/stable/c/383a9480f5f40bc46454cce27ccfad532cedad9c"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-90172","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-90172","identifiers":["CVE-2026-90172"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-09T03:04:09.5264463+00:00","complete":true,"records":1769,"lastAttemptAt":"2026-11-09T03:04:09.5264463+00:00","lastSuccessAt":"2026-11-09T03:04:09.687719+00:00","error":null,"lastVerifiedAt":"2026-11-09T03:04:09.687725+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-24e6fde7b744113daefb8f6135035fb8a5c69c9617c9c0d40574a0376532ffd3-147e40e6bacaf605c8b8b91790303c2161fe161e986dcab4007ffaf615b27ea0","complete":true,"records":421280,"lastAttemptAt":"2026-11-09T03:02:14.7184665+00:00","lastSuccessAt":"2026-11-09T03:02:14.7023872+00:00","error":null,"lastVerifiedAt":"2026-11-09T03:02:14.7184665+00:00","snapshotPublishedAt":"2026-11-09T02:22:19+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-5923d59598fe46c98ec384fbfaf44bc7","complete":false,"records":13654,"lastAttemptAt":"2026-11-09T03:16:18.1412099+00:00","lastSuccessAt":"2026-11-09T03:16:18.138+00:00","error":"6 identifier lookups failed; latest failures include HTTP 403. Other identifiers were checked independently.","lastVerifiedAt":"2026-11-09T03:16:18.138+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13655,"expectedIdentifiers":13706,"failedIdentifiers":6},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-09T03:04:09.5264463+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-09T03:04:09.5264463+00:00","lastSuccessAt":"2026-11-09T03:04:09.6884561+00:00","error":null,"lastVerifiedAt":"2026-11-09T03:04:09.6884561+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-5a44a451442747cb81d83104fe1e7771","complete":true,"records":13666,"lastAttemptAt":"2026-11-09T03:04:10.1662574+00:00","lastSuccessAt":"2026-11-09T02:08:52.274+00:00","error":null,"lastVerifiedAt":"2026-11-09T02:08:52.274+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13706,"expectedIdentifiers":13706,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-980593e6977a6d1b4fb1eed5a1ffe88a468736f89f0a06f710924ad59132c023","complete":true,"records":9914,"lastAttemptAt":"2026-11-09T03:04:09.4835743+00:00","lastSuccessAt":"2026-11-08T11:07:07.068788+00:00","error":null,"lastVerifiedAt":"2026-11-09T03:04:09.4835743+00:00","snapshotPublishedAt":"2026-11-08T11:02:46+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-fde804134ecdda0ddd5ff5c26ee1fff5a6fa659311f7ef2e51c6ad54964db0e2","complete":true,"records":1971,"lastAttemptAt":"2026-11-09T03:02:14.8618119+00:00","lastSuccessAt":"2026-11-06T19:03:17.0399903+00:00","error":null,"lastVerifiedAt":"2026-11-09T03:02:14.8618119+00:00","snapshotPublishedAt":"2026-11-06T18:17:57+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-3b1150af6d7ada2c07356cbab4ead5224c1485027890f71c71d0742cddf0b9e8","complete":true,"records":3055,"lastAttemptAt":"2026-11-09T03:04:09.4954044+00:00","lastSuccessAt":"2026-11-09T00:02:23.4330288+00:00","error":null,"lastVerifiedAt":"2026-11-09T03:04:09.4954044+00:00","snapshotPublishedAt":"2026-11-08T23:17:54+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-d847477990cd62b1d95e922f40ca328269fbc268a0aa72bfe5bee28e656d8ce7","complete":true,"records":231296,"lastAttemptAt":"2026-11-09T03:04:09.3500258+00:00","lastSuccessAt":"2026-11-09T03:04:07.965371+00:00","error":null,"lastVerifiedAt":"2026-11-09T03:04:09.3500258+00:00","snapshotPublishedAt":"2026-11-09T02:33:09+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}