CVE-2023-53419

rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access

State
Published
Severity
5.5 Medium
Published
Sep 18, 2025
Updated
May 11, 2026
Reserved
Sep 17, 2025

Read the record on cve.org

Description

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

rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access

For kernels built with CONFIG_PREEMPT_RCU=y, the following scenario can result in a NULL-pointer dereference:

CPU1 CPU2 rcu_preempt_deferred_qs_irqrestore rcu_print_task_exp_stall if (special.b.blocked) READ_ONCE(rnp->exp_tasks) != NULL raw_spin_lock_rcu_node np = rcu_next_node_entry(t, rnp) if (&t->rcu_node_entry == rnp->exp_tasks) WRITE_ONCE(rnp->exp_tasks, np) .... raw_spin_unlock_irqrestore_rcu_node raw_spin_lock_irqsave_rcu_node t = list_entry(rnp->exp_tasks->prev, struct task_struct, rcu_node_entry) (if rnp->exp_tasks is NULL, this will dereference a NULL pointer)

The problem is that CPU2 accesses the rcu_node structure's->exp_tasks field without holding the rcu_node structure's ->lock and CPU2 did not observe CPU1's change to rcu_node structure's ->exp_tasks in time. Therefore, if CPU1 sets rcu_node structure's->exp_tasks pointer to NULL, then CPU2 might dereference that NULL pointer.

This commit therefore holds the rcu_node structure's ->lock while accessing that structure's->exp_tasks field.

[ paulmck: Apply Frederic Weisbecker feedback. ]

Scores

CVSSScoreVectorSource
3.15.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 314eeb43e5f22856b281c91c966e51e5782a3498 to before a7d21b8585894e6fff973f6ddae42f02b13f600fAffected
  • 314eeb43e5f22856b281c91c966e51e5782a3498 to before e30a55e98ae6c44253d8b129efefd5da5bc6e3bcAffected
  • 314eeb43e5f22856b281c91c966e51e5782a3498 to before d0a8c0e31a09ec1efd53079083e2a677956b4d91Affected
  • 314eeb43e5f22856b281c91c966e51e5782a3498 to before 2bc0ae94ef1f9ed322d8ee439de3239ea3632ab2Affected
  • 314eeb43e5f22856b281c91c966e51e5782a3498 to before 3c1566bca3f8349f12b75d0a2d5e4a20ad6262ecAffected
LinuxLinux
  • 5.8Affected
  • before 5.8Not affected
  • 5.10.181 through 5.10.*Not affected
  • 5.15.113 through 5.15.*Not affected
  • 6.1.30 through 6.1.*Not affected
  • 6.3.4 through 6.3.*Not affected
  • 6.4 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.