CVE-2026-98360RDMA/rxe: insert mcg into mcg_tree only after rxe_mcast_add() succeeds
- 7.0HighCVSS base score
- 0.13%Exploitation in 30 daysEPSS · top 97% of all CVEs
- NoKnown exploitednot in CISA's KEV catalog
- NonePublic exploitsnone known yet
Description
In the Linux kernel, the following vulnerability has been resolved: RDMA/rxe: insert mcg into mcg_tree only after rxe_mcast_add() succeeds rxe_get_mcg() publishes a newly allocated multicast group in rxe->mcg_tree before programming the backing Ethernet multicast address with rxe_mcast_add(), which runs outside mcg_lock. A local userspace RDMA client reaches this path with ATTACH_MCAST on a UD QP; if rxe_mcast_add() then returns an error (for example -ENODEV when the backing netdev has been removed, or a propagated dev_mc_add() error), the unwind frees the published group without removing it from the tree. A later lookup of the same MGID dereferences the freed struct rxe_mcg from __rxe_lookup_mcg(). Fix this by keeping the new mcg private until rxe_mcast_add() succeeds. Split the tree publication into __rxe_publish_mcg(), call rxe_mcast_add() before taking the tree reference, and free the still-private mcg on failure. Because the group is never visible in mcg_tree until the multicast address is programmed, no concurrent caller can look it up or attach a QP to a group that is about to be torn down, so the error path needs no conditional unwind. If another caller publishes the same MGID while the address is being programmed, the post-add re-check under mcg_lock finds the winner; this caller then drops its private object and balances its own rxe_mcast_add() with rxe_mcast_del() before returning the winner. Reproduced by forcing the rxe_mcast_add() error return under KASAN: without the change the next attach to the same MGID reports a slab-use-after-free in __rxe_lookup_mcg(); with it the forced failure returns cleanly. A no-injection attach/detach regression, including a two-QP shared join/leave and re-attach, stays KASAN- and leak-clean.
Timeline
ID reserved
By Linux
- 11 days later
· 11 days later
Published
- 13 days later
· 13 days later
Record updated
Changes after publication (a new score, a public exploit, EPSS crossing 1, 10 or 50 %, leaving KEV) are kept since November 2026; earlier ones are not known.
Scores
| Scored by | CVSS | Score | Vector |
|---|---|---|---|
| LinuxCNA (assigner) | 3.1 | High7.0 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| NVDNVD · Received | 3.1 | High7.0 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
- EPSS (exploitation in 30 days)
- 0.13% · top 97% of all CVEs (12 Nov 2026)
The list uses the assigner's score when there is one, then CISA's, then NVD's: High 7.0.
Affected products
- affected a926a903b7dc39a8a949150258c09290998dd812 – < ddb43ac0926d4a931bc9b7744b93627f627457e5
- affected a926a903b7dc39a8a949150258c09290998dd812 – < c79a789aa15180a1543b5db49c343d12e3ec214d
- affected a926a903b7dc39a8a949150258c09290998dd812 – < faae1fb4ccf8205806a8802c008798dabeb0205b
- affected a926a903b7dc39a8a949150258c09290998dd812 – < 02c0a2fa69c16248a7432af8a6d64ab2a73a5283
- affected a926a903b7dc39a8a949150258c09290998dd812 – < d4fc4e37f8a143b0fe83b42c8fb48cf542154fee
- affected a926a903b7dc39a8a949150258c09290998dd812 – < 1caceeb2d74bbe88223aea55eb8626b4c5f076fd
- affected 5.18
- unaffected < 5.18
- unaffected 6.1.189 – ≤ 6.1.*
- unaffected 6.6.158 – ≤ 6.6.*
- unaffected 6.12.112 – ≤ 6.12.*
- unaffected 6.18.54 – ≤ 6.18.*
- unaffected 7.2.8 – ≤ 7.2.*
- unaffected 7.3 – ≤ *
References
References6
- https://git.kernel.org/stable/c/ddb43ac0926d4a931bc9b7744b93627f627457e5 (opens in a new tab)
- https://git.kernel.org/stable/c/c79a789aa15180a1543b5db49c343d12e3ec214d (opens in a new tab)
- https://git.kernel.org/stable/c/faae1fb4ccf8205806a8802c008798dabeb0205b (opens in a new tab)
- https://git.kernel.org/stable/c/02c0a2fa69c16248a7432af8a6d64ab2a73a5283 (opens in a new tab)
- https://git.kernel.org/stable/c/d4fc4e37f8a143b0fe83b42c8fb48cf542154fee (opens in a new tab)
- https://git.kernel.org/stable/c/1caceeb2d74bbe88223aea55eb8626b4c5f076fd (opens in a new tab)
Sources
The same CVE in the primary databases and aggregators, to check against.
- CVE.org record (opens in a new tab)
- CVE List JSON (GitHub) (opens in a new tab)
- NVD (opens in a new tab)
- FIRST EPSS (opens in a new tab)
- EUVD EUVD-2026-93345 (opens in a new tab)
- OSV.dev (opens in a new tab)
- GitHub Advisories (opens in a new tab)
- CIRCL Vulnerability-Lookup (opens in a new tab)
Badge for a README or a ticket
[](https://cveledger.app/cve/CVE-2026-98360)Record last updated .