CVE Database›Document archive›CVE-2023-53558

CVE-2023-53558

kernel: rcu-tasks: Avoid pr_info() with spin lock in cblist_init_generic()

Loading…

Severity

Moderate

Red Hat Product Security

4.7

CVSS 3.1

Review impact separately from score.

Published · October 4, 2025

Updated · June 30, 2026

Description

A locking violation was found in the Linux kernel RCU-tasks subsystem's callback list initialization. During system boot, the initialization code calls pr_info() while holding the rtp->cbs_gbl_lock spinlock, causing a potentially sleeping function to be called in atomic context, which results in kernel lockdep warnings and potential deadlock leading to denial of service.

Statement

The issue arises because cblist_init_generic() calls pr_info() while holding the rtp->cbs_gbl_lock spinlock. The pr_info() function calls printk(), which may sleep because it acquires the console_lock and can block waiting for console output. Calling a potentially sleeping function while holding a spinlock violates kernel locking rules and can lead to deadlock. During RCU-tasks initialization at boot time, if lockdep is enabled, the kernel detects this violation and emits an "Invalid wait context" warning showing the problematic lock chain. While this primarily manifests as warnings with lockdep enabled, the underlying locking violation could lead to actual deadlocks in production systems under the right timing conditions.

CVSS score applicability

The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.

Mitigation

No mitigation is specified in collected source.

CVSS / CWE

CVSS 3.1 · 4.7
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H

CWE-1322 · Use of Blocking Code in Single-threaded, Non-blocking Context