CVE-2024-53215

svcrdma: fix miss destroy percpu_counter in svc_rdma_proc_init()

Medium · published December 27, 2024

CVSS v3.1
5.5
EPSS
0%
Percentile
12.3
In the wild
Unconfirmed
What it is

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

svcrdma: fix miss destroy percpu_counter in svc_rdma_proc_init()

There's issue as follows:

RPC: Registered rdma transport module.

RPC: Registered rdma backchannel transport module.

RPC: Unregistered rdma transport module.

RPC: Unregistered rdma backchannel transport module.

BUG: unable to handle page fault for address: fffffbfff80c609a

PGD 123fee067 P4D 123fee067 PUD 123fea067 PMD 10c624067 PTE 0

Oops: Oops: 0000 [#1] PREEMPT SMP KASAN NOPTI

RIP: 0010:percpu_counter_destroy_many+0xf7/0x2a0

Call Trace:

<TASK>

__die+0x1f/0x70

page_fault_oops+0x2cd/0x860

spurious_kernel_fault+0x36/0x450

do_kern_addr_fault+0xca/0x100

exc_page_fault+0x128/0x150

asm_exc_page_fault+0x26/0x30

percpu_counter_destroy_many+0xf7/0x2a0

mmdrop+0x209/0x350

finish_task_switch.isra.0+0x481/0x840

schedule_tail+0xe/0xd0

ret_from_fork+0x23/0x80

ret_from_fork_asm+0x1a/0x30

</TASK>

If register_sysctl() return NULL, then svc_rdma_proc_cleanup() will not

destroy the percpu counters which init in svc_rdma_proc_init().

If CONFIG_HOTPLUG_CPU is enabled, residual nodes may be in the

'percpu_counters' list. The above issue may occur once the module is

removed. If the CONFIG_HOTPLUG_CPU configuration is not enabled, memory

leakage occurs.

To solve above issue just destroy all percpu counters when

register_sysctl() return NULL.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00224 · 12.3th percentile
Published
2024-12-27T13:50Z
EPSS history
Timeline
  • 27 DEC 13:50Z
    svcrdma: fix miss destroy percpu_counter in svc_rdma_proc_init()
    cvelistv5