CVE-2022-50543 PUBLISHED

RDMA/rxe: Fix mr->map double free

Assigner: Linux
Reserved: 07.10.2025 Published: 07.10.2025 Updated: 07.10.2025

In the Linux kernel, the following vulnerability has been resolved:

RDMA/rxe: Fix mr->map double free

rxe_mr_cleanup() which tries to free mr->map again will be called when rxe_mr_init_user() fails:

CPU: 0 PID: 4917 Comm: rdma_flush_serv Kdump: loaded Not tainted 6.1.0-rc1-roce-flush+ #25 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x45/0x5d panic+0x19e/0x349 end_report.part.0+0x54/0x7c kasan_report.cold+0xa/0xf rxe_mr_cleanup+0x9d/0xf0 [rdma_rxe] __rxe_cleanup+0x10a/0x1e0 [rdma_rxe] rxe_reg_user_mr+0xb7/0xd0 [rdma_rxe] ib_uverbs_reg_mr+0x26a/0x480 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x1a2/0x250 [ib_uverbs] ib_uverbs_cmd_verbs+0x1397/0x15a0 [ib_uverbs]

This issue was firstly exposed since commit b18c7da63fcb ("RDMA/rxe: Fix memory leak in error path code") and then we fixed it in commit 8ff5f5d9d8cf ("RDMA/rxe: Prevent double freeing rxe_map_set()") but this fix was reverted together at last by commit 1e75550648da (Revert "RDMA/rxe: Create duplicate mapping tables for FMRs")

Simply let rxe_mr_cleanup() always handle freeing the mr->map once it is successfully allocated.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 1e75550648da1fa1cd1969e7597355de8fe8caf6 to 6ce577f09013206e36e674cd27da3707b2278268 (excl.)
  • affected from 1e75550648da1fa1cd1969e7597355de8fe8caf6 to 06f73568f553b5be6ba7f6fe274d333ea29fc46d (excl.)
  • affected from 1e75550648da1fa1cd1969e7597355de8fe8caf6 to 7d984dac8f6bf4ebd3398af82b357e1d181ecaac (excl.)
  • Version e004a35e8148ad9fc438b0479884641acf382896 is affected
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.0 is affected
  • unaffected from 0 to 6.0 (excl.)
  • unaffected from 6.0.16 to 6.0.* (incl.)
  • unaffected from 6.1.2 to 6.1.* (incl.)
  • unaffected from 6.2 to * (incl.)

References