CVE-2025-39744: rcu: Fix rcu_read_unlock() deadloop due to IRQ work

Published Sep 11, 2025
·
Updated

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

rcu: Fix rcureadunlock() deadloop due to IRQ work

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

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

irqexit() irqexitrcu() / inhardirq() returns false after this / preemptcountsub(HARDIRQOFFSET) tickirqexit() ticknohzirqexit() ticknohzstopschedtick() tracetickstop() / a bpf prog is hooked on this trace point / bpftracetickstop() bpftracerun2() rcureadunlockspecial() / will send a IPI to itself / irqworkqueueon(&rdp->deferqsiw, rdp->cpu);

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

static inline void tickirqexit(void) { + rcureadlock(); + WRITEONCE(current->rcureadunlockspecial.b.needqs, true); + rcureadunlock(); +

[neeraj: Apply Frederic's suggested fix for PREEMPTRT]

Affected Software

8 affected componentsFixes available
Linux Kernel
Microsoft azl3 kernel 6.6.96.2-2
Linux Linux kernel<6.6.103
Linux Linux kernel>=6.7<6.12.43
Linux Linux kernel>=6.13<6.15.11
Linux Linux kernel>=6.16<6.16.2
Microsoft cbl2 kernel 5.15.186.1-1
Microsoft azl3 kernel 6.6.96.2-2<6.6.104.2-1
6.6.104.2-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 6.6.104.2-1

Event History

Sep 11, 2025
CVE Published
via MITRE·04:52 PM
Data Sourced
via MITRE·04:52 PM
Description
Data Sourced
via NVD·05:15 PM
RemedyDescriptionSeverityWeaknessAffected Software
Sep 13, 2025
Data Sourced
via Microsoft·01:04 AM
DescriptionSeverityWeaknessAffected Software
Updated
via Microsoft·08:04 AM
DescriptionSeverity
Updated
via Microsoft·08:04 AM
Affected Software

Frequently Asked Questions

1

What is the severity of CVE-2025-39744?

CVE-2025-39744 has a high severity rating due to the potential for deadlock situations in the Linux kernel.

2

How do I fix CVE-2025-39744?

To mitigate CVE-2025-39744, update the Linux kernel to the latest patched version released by the maintainers.

3

What are the risks associated with CVE-2025-39744?

The risks of CVE-2025-39744 include system hang or freeze due to deadlock during IRQ handling.

4

Which versions of the Linux kernel are affected by CVE-2025-39744?

CVE-2025-39744 affects various versions of the Linux kernel prior to the official fix being applied.

5

Is CVE-2025-39744 a remote exploit?

CVE-2025-39744 is not a remote exploit, but it can be triggered by local processes interacting with IRQs.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203