CVE-2023-53419
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
18/09/2025
Last modified:
14/01/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access<br />
<br />
For kernels built with CONFIG_PREEMPT_RCU=y, the following scenario can<br />
result in a NULL-pointer dereference:<br />
<br />
CPU1 CPU2<br />
rcu_preempt_deferred_qs_irqrestore rcu_print_task_exp_stall<br />
if (special.b.blocked) READ_ONCE(rnp->exp_tasks) != NULL<br />
raw_spin_lock_rcu_node<br />
np = rcu_next_node_entry(t, rnp)<br />
if (&t->rcu_node_entry == rnp->exp_tasks)<br />
WRITE_ONCE(rnp->exp_tasks, np)<br />
....<br />
raw_spin_unlock_irqrestore_rcu_node<br />
raw_spin_lock_irqsave_rcu_node<br />
t = list_entry(rnp->exp_tasks->prev,<br />
struct task_struct, rcu_node_entry)<br />
(if rnp->exp_tasks is NULL, this<br />
will dereference a NULL pointer)<br />
<br />
The problem is that CPU2 accesses the rcu_node structure&#39;s->exp_tasks<br />
field without holding the rcu_node structure&#39;s ->lock and CPU2 did<br />
not observe CPU1&#39;s change to rcu_node structure&#39;s ->exp_tasks in time.<br />
Therefore, if CPU1 sets rcu_node structure&#39;s->exp_tasks pointer to NULL,<br />
then CPU2 might dereference that NULL pointer.<br />
<br />
This commit therefore holds the rcu_node structure&#39;s ->lock while<br />
accessing that structure&#39;s->exp_tasks field.<br />
<br />
[ paulmck: Apply Frederic Weisbecker feedback. ]
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.181 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.113 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.30 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.3.4 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/2bc0ae94ef1f9ed322d8ee439de3239ea3632ab2
- https://git.kernel.org/stable/c/3c1566bca3f8349f12b75d0a2d5e4a20ad6262ec
- https://git.kernel.org/stable/c/a7d21b8585894e6fff973f6ddae42f02b13f600f
- https://git.kernel.org/stable/c/d0a8c0e31a09ec1efd53079083e2a677956b4d91
- https://git.kernel.org/stable/c/e30a55e98ae6c44253d8b129efefd5da5bc6e3bc



