CVE-2026-31541
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
24/04/2026
Last modified:
28/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
tracing: Fix trace_marker copy link list updates<br />
<br />
When the "copy_trace_marker" option is enabled for an instance, anything<br />
written into /sys/kernel/tracing/trace_marker is also copied into that<br />
instances buffer. When the option is set, that instance&#39;s trace_array<br />
descriptor is added to the marker_copies link list. This list is protected<br />
by RCU, as all iterations uses an RCU protected list traversal.<br />
<br />
When the instance is deleted, all the flags that were enabled are cleared.<br />
This also clears the copy_trace_marker flag and removes the trace_array<br />
descriptor from the list.<br />
<br />
The issue is after the flags are called, a direct call to<br />
update_marker_trace() is performed to clear the flag. This function<br />
returns true if the state of the flag changed and false otherwise. If it<br />
returns true here, synchronize_rcu() is called to make sure all readers<br />
see that its removed from the list.<br />
<br />
But since the flag was already cleared, the state does not change and the<br />
synchronization is never called, leaving a possible UAF bug.<br />
<br />
Move the clearing of all flags below the updating of the copy_trace_marker<br />
option which then makes sure the synchronization is performed.<br />
<br />
Also use the flag for checking the state in update_marker_trace() instead<br />
of looking at if the list is empty.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.16 (including) | 6.18.20 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.10 (excluding) |
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



