CVE-2026-31532CWE-416

CVE-2026-31532

High · published April 23, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
7.1
In the wild
Unconfirmed
What it is

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

can: raw: fix ro->uniq use-after-free in raw_rcv()

raw_release() unregisters raw CAN receive filters via can_rx_unregister(),

but receiver deletion is deferred with call_rcu(). This leaves a window

where raw_rcv() may still be running in an RCU read-side critical section

after raw_release() frees ro->uniq, leading to a use-after-free of the

percpu uniq storage.

Move free_percpu(ro->uniq) out of raw_release() and into a raw-specific

socket destructor. can_rx_unregister() takes an extra reference to the

socket and only drops it from the RCU callback, so freeing uniq from

sk_destruct ensures the percpu area is not released until the relevant

callbacks have drained.

[mkl: applied manually]

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00179 · 7.1th percentile
Weakness
CWE-416 · Use After Free
Published
2026-04-23T16:17Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel≥ 4.1, ≤ 6.6.136—
linux/linux_kernel≥ 6.7, < 6.12.836.12.83
linux/linux_kernel≥ 6.18, < 6.18.246.18.24
linux/linux_kernel≥ 6.19, < 6.19.146.19.14
linux/linux_kernel≥ 7.0, < 7.0.17.0.1
References (10)
EPSS history
Timeline
  • 23 APR 11:12Z
    can: raw: fix ro->uniq use-after-free in raw_rcv()
    cvelistv5