CVE-2022-50771 json
rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
published 2025-12-24 10 mo ago modified 2026-06-17 4 mo ago also EUVD-2022-55790
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 15%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
Running rcutorture with non-zero fqs_duration module parameter in a kernel built with CONFIG_PREEMPTION=y results in the following splat:
BUG: using __this_cpu_read() in preemptible [00000000] code: rcu_torture_fqs/398 caller is __this_cpu_preempt_check+0x13/0x20 CPU: 3 PID: 398 Comm: rcu_torture_fqs Not tainted 6.0.0-rc1-yoctodev-standard+ Call Trace: <TASK> dump_stack_lvl+0x5b/0x86 dump_stack+0x10/0x16 check_preemption_disabled+0xe5/0xf0 __this_cpu_preempt_check+0x13/0x20 rcu_force_quiescent_state.part.0+0x1c/0x170 rcu_force_quiescent_state+0x1e/0x30 rcu_torture_fqs+0xca/0x160 ? rcu_torture_boost+0x430/0x430 kthread+0x192/0x1d0 ? kthread_complete_and_exit+0x30/0x30 ret_from_fork+0x22/0x30 </TASK>
The problem is that rcu_force_quiescent_state() uses __this_cpu_read() in preemptible code instead of the proper raw_cpu_read(). This commit therefore changes __this_cpu_read() to raw_cpu_read().
Patch / fix
- Linux Linux 5.4.229, 5.10.163, 5.15.86, 6.0.16, 6.1.2, 6.2
- linux Debian 14, Debian 13, Debian 12 6.1.4-1
debian advisories DEBIAN-CVE-2022-50771
- linux Ubuntu 20.04 LTS 5.4.0-144.161
- linux Ubuntu 22.04 LTS 5.15.0-69.76
- linux-aws Ubuntu 20.04 LTS 5.4.0-1097.105
- linux-aws Ubuntu 22.04 LTS 5.15.0-1033.37
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1101.110
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1031.38
- linux-gke Ubuntu 22.04 LTS 5.15.0-1030.35
- linux-ibm Ubuntu 20.04 LTS 5.4.0-1045.50
ubuntu advisories UBUNTU-CVE-2022-50771
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel RHEL 9 5.14.0-362.8.1.el9_3
- rv RHEL 9 5.14.0-362.8.1.el9_3
- perf RHEL 9 5.14.0-362.8.1.el9_3
- rtla RHEL 9 5.14.0-362.8.1.el9_3
- bpftool RHEL 9 7.2.0-362.8.1.el9_3
- libperf RHEL 9 5.14.0-362.8.1.el9_3
- kernel-rt RHEL 9 5.14.0-362.8.1.el9_3
- kernel-64k RHEL 9 5.14.0-362.8.1.el9_3
red hat advisories RHSA-2023:6583
- git.kernel.org/stable/c/3d92527a919edd1aa381bdd6c299dd75a8167396 commit
- git.kernel.org/stable/c/5a52380b8193cf8be6c4a6b94b86ef64ed80c0dc commit
- git.kernel.org/stable/c/98a5b1265a36e9d843a51ddd6c9fa02da50d2c57 commit
- git.kernel.org/stable/c/a74af9b937707b42c3fd041aae1ed4ce2f337307 commit
- git.kernel.org/stable/c/80a3e7ab477b3655615fc1627c88c248d4ad28d9 commit
- git.kernel.org/stable/c/ceb1c8c9b8aa9199da46a0f29d2d5f08d9b44c15 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2022-50771 updated cvss 5.5
kernel: rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
-
Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 moreaffected: no fix available “Fix deferred”
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.24% chance of exploitation in the next 30 days, higher than 15% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/3d92527a919edd1aa381bdd6c299dd75a8167396
- git.kernel.org /stable/c/5a52380b8193cf8be6c4a6b94b86ef64ed80c0dc
- git.kernel.org /stable/c/98a5b1265a36e9d843a51ddd6c9fa02da50d2c57
- git.kernel.org /stable/c/a74af9b937707b42c3fd041aae1ed4ce2f337307
- git.kernel.org /stable/c/80a3e7ab477b3655615fc1627c88c248d4ad28d9
- git.kernel.org /stable/c/ceb1c8c9b8aa9199da46a0f29d2d5f08d9b44c15
Sources
- CVE List CVE-2022-50771
- NVD CVE-2022-50771
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.