CVE-2025-39744

EUVD-2025-28967
In the Linux kernel, the following vulnerability has been resolved:

rcu: Fix rcu_read_unlock() deadloop due to IRQ work

During rcu_read_unlock_special(), if this happens during irq_exit(), we
can lockup if an IPI is issued. This is because the IPI itself triggers
the irq_exit() path causing a recursive lock up.

This is precisely what Xiongfeng found when invoking a BPF program on
the trace_tick_stop() tracepoint As shown in the trace below. Fix by
managing the irq_work state correctly.

irq_exit()
  __irq_exit_rcu()
    /* in_hardirq() returns false after this */
    preempt_count_sub(HARDIRQ_OFFSET)
    tick_irq_exit()
      tick_nohz_irq_exit()
	    tick_nohz_stop_sched_tick()
	      trace_tick_stop()  /* a bpf prog is hooked on this trace point */
		   __bpf_trace_tick_stop()
		      bpf_trace_run2()
			    rcu_read_unlock_special()
                              /* will send a IPI to itself */
			      irq_work_queue_on(&rdp->defer_qs_iw, rdp->cpu);

A simple reproducer can also be obtained by doing the following in
tick_irq_exit(). It will hang on boot without the patch:

  static inline void tick_irq_exit(void)
  {
 +	rcu_read_lock();
 +	WRITE_ONCE(current->rcu_read_unlock_special.b.need_qs, true);
 +	rcu_read_unlock();
 +

[neeraj: Apply Frederic's suggested fix for PREEMPT_RT]
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTPrimary
7.1 HIGH
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
Base Score
CVSS 3.x
EPSS Score
Percentile: 7%
Affected Products (NVD)
VendorProductVersion
linuxlinux_kernel
𝑥
< 6.6.103
linuxlinux_kernel
6.7 ≤
𝑥
< 6.12.43
linuxlinux_kernel
6.13 ≤
𝑥
< 6.15.11
linuxlinux_kernel
6.16 ≤
𝑥
< 6.16.2
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bookworm
vulnerable
bookworm (security)
vulnerable
bullseye
vulnerable
bullseye (security)
vulnerable
forky
7.0.7-1
fixed
sid
7.0.7-1
fixed
trixie
6.12.86-1
fixed
trixie (security)
6.12.88-1
fixed
openSUSE logo
openSUSE / SLES Releases
openSUSE Product
Release
kernel-64kb
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-azure
suse enterprise sap 15 SP6
6.4.0-150600.8.52.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.20.15.2
fixed
suse enterprise server 15 SP6
6.4.0-150600.8.52.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.15.2
fixed
kernel-default
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-default-base
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1.150600.12.32.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1.150700.17.13.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1.150600.12.32.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1.150700.17.13.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1.150600.12.32.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1.150700.17.13.1
fixed
kernel-docs
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-macros
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-obs-build
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-source
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-source-azure
suse enterprise sap 15 SP6
6.4.0-150600.8.52.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.20.15.2
fixed
suse enterprise server 15 SP6
6.4.0-150600.8.52.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.15.2
fixed
kernel-syms
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-syms-azure
suse enterprise sap 15 SP6
6.4.0-150600.8.52.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.20.15.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.8.52.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.15.1
fixed
kernel-zfcpdump
suse enterprise desktop 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP6
6.4.0-150600.23.73.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed