rcutorture: Fix rcutorture_one_extend_check() splat in RT kernels
Published Sep 11, 2025
5.5
MEDIUMCVSS 3.1
EPSS 0.16%
Description
For built with CONFIG_PREEMPT_RT=y kernels, running rcutorture tests resulted in the following splat:
[ 68.797425] rcutorture_one_extend_check during change: Current 0x1 To add 0x1 To remove 0x0 preempt_count() 0x0 [ 68.797533] WARNING: CPU: 2 PID: 512 at kernel/rcu/rcutorture.c:1993 rcutorture_one_extend_check+0x419/0x560 [rcutorture] [ 68.797601] Call Trace: [ 68.797602] <TASK> [ 68.797619] ? lockdep_softirqs_off+0xa5/0x160 [ 68.797631] rcutorture_one_extend+0x18e/0xcc0 [rcutorture 2466dbd2ff34dbaa36049cb323a80c3306ac997c] [ 68.797646] ? local_clock+0x19/0x40 [ 68.797659] rcu_torture_one_read+0xf0/0x280 [rcutorture 2466dbd2ff34dbaa36049cb323a80c3306ac997c] [ 68.797678] ? __pfx_rcu_torture_one_read+0x10/0x10 [rcutorture 2466dbd2ff34dbaa36049cb323a80c3306ac997c] [ 68.797804] ? __pfx_rcu_torture_timer+0x10/0x10 [rcutorture 2466dbd2ff34dbaa36049cb323a80c3306ac997c] [ 68.797815] rcu-torture: rcu_torture_reader task started [ 68.797824] rcu-torture: Creating rcu_torture_reader task [ 68.797824] rcu_torture_reader+0x238/0x580 [rcutorture 2466dbd2ff34dbaa36049cb323a80c3306ac997c] [ 68.797836] ? kvm_sched_clock_read+0x15/0x30
Disable BH does not change the SOFTIRQ corresponding bits in preempt_count() for RT kernels, this commit therefore use softirq_count() to check the if BH is disabled.
Affected products
-
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version
-
- Version 6.14StatusaffectedConstraints-
- Version 0StatusunaffectedConstraints<6.14
- Version 6.15.11StatusunaffectedConstraints<=6.15.*
- Version 6.16.2StatusunaffectedConstraints<=6.16.*
- Version 6.17StatusunaffectedConstraints<=*
- Version
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
- < 6.15.11
- ≥ 6.16 · < 6.16.2
No data.
Red Hat Enterprise Linux 10
kernel
Fix deferred
Red Hat Enterprise Linux 6
kernel
Not affected
Red Hat Enterprise Linux 7
kernel
Not affected
Red Hat Enterprise Linux 7
kernel-rt
Not affected
Red Hat Enterprise Linux 8
kernel
Fix deferred
Red Hat Enterprise Linux 8
kernel-rt
Fix deferred
Red Hat Enterprise Linux 9
kernel
Fix deferred
Red Hat Enterprise Linux 9
kernel-rt
Fix deferred
| Product | Package | State | Advisory |
|---|---|---|---|
| Red Hat Enterprise Linux 10 | kernel | Fix deferred | n/a |
| Red Hat Enterprise Linux 6 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel-rt | Not affected | n/a |
| Red Hat Enterprise Linux 8 | kernel | Fix deferred | n/a |
| Red Hat Enterprise Linux 8 | kernel-rt | Fix deferred | n/a |
| Red Hat Enterprise Linux 9 | kernel | Fix deferred | n/a |
| Red Hat Enterprise Linux 9 | kernel-rt | Fix deferred | n/a |
No package ranges for this CVE.
Remediation
Red Hat mitigation
To mitigate this issue, prevent the `rcutorture` kernel module from loading. This can be achieved by blacklisting the module. Create a file `/etc/modprobe.d/blacklist-rcutorture.conf` with the following content: `blacklist rcutorture` After creating the file, regenerate the initramfs and reboot the system for the changes to take effect: `dracut -f -v` `reboot` This mitigation may impact kernel development or testing environments that rely on the `rcutorture` module. A system reboot is required for the changes to take effect.
References (9)
- https://access.redhat.com/security/cve/CVE-2025-39745 Vendor Advisory
- https://bugzilla.redhat.com/show_bug.cgi?id=2394635 Issue Tracking
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-28966 Advisory
- https://git.kernel.org/stable/c/69c5ae0f441c2d72e8f48dc1e08464c172360c4c Patch
- https://git.kernel.org/stable/c/8d71351d88e478d3c4e945e3218e97ec677fd807 Patch
- https://git.kernel.org/stable/c/a85550267247cdf5e7499be00ea8e388ab014e50 Patch
- https://lore.kernel.org/linux-cve-announce/2025091140-CVE-2025-39745-ac0b@gregkh/T
- https://nvd.nist.gov/vuln/detail/CVE-2025-39745
- https://www.cve.org/CVERecord?id=CVE-2025-39745
Change history (0)
No recorded changes yet.