CVE-2025-39977
Last modified
CVE-2025-39977 is a high-severity vulnerability rated 7.8/10 on the CVSS scale. In the Linux kernel, the following vulnerability has been resolved: futex: Prevent use-after-free during requeue-PI syzbot managed to trigger the following race: T1 T2 futex_wait_requeue_pi() futex_do_wait() schedule() futex_requeue() futex_proxy_trylock_atomic() futex_requeue_pi_prepare() requeue_pi_wake_futex() futex_requeue_pi_complete() /* preempt */ * timeout/ signal wakes T1 * futex_requeue_pi_wakeup_sync() // Q_REQUEUE_PI_LOCKED futex_hash_put() // back to userland, on stack futex_q is garbage /* back */ wake_up_state(q->task, TASK_NORMAL); In this scenario futex_wait_requeue_pi() is able to leave without using futex_q::lock_ptr for synchronization. This can be prevented by reading futex_q::task before updating the futex_q::requeue_state. A reference on the task_struct is not needed because requeue_pi_wake_futex() is invoked with a spinlock_t held which implies a RCU read section. Even if T1 terminates immediately after, the task_struct will remain valid during T2's wake_up_state(). EPSS estimates a 0.19% chance of exploitation in the next 30 days.
Description
In the Linux kernel, the following vulnerability has been resolved: futex: Prevent use-after-free during requeue-PI syzbot managed to trigger the following race: T1 T2 futex_wait_requeue_pi() futex_do_wait() schedule() futex_requeue() futex_proxy_trylock_atomic() futex_requeue_pi_prepare() requeue_pi_wake_futex() futex_requeue_pi_complete() /* preempt */ * timeout/ signal wakes T1 * futex_requeue_pi_wakeup_sync() // Q_REQUEUE_PI_LOCKED futex_hash_put() // back to userland, on stack futex_q is garbage /* back */ wake_up_state(q->task, TASK_NORMAL); In this scenario futex_wait_requeue_pi() is able to leave without using futex_q::lock_ptr for synchronization. This can be prevented by reading futex_q::task before updating the futex_q::requeue_state. A reference on the task_struct is not needed because requeue_pi_wake_futex() is invoked with a spinlock_t held which implies a RCU read section. Even if T1 terminates immediately after, the task_struct will remain valid during T2's wake_up_state(). A READ_ONCE on futex_q::task before futex_requeue_pi_complete() is enough because it ensures that the variable is read before the state is updated. Read futex_q::task before updating the requeue state, use it for the following wakeup.
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 07d91ef510fb16a2e0ca7453222105835b7ba3b8, < cb5d19a61274b51b49601214a87af573b43d60fa; >= 07d91ef510fb16a2e0ca7453222105835b7ba3b8, < 348736955ed6ca6e99ca24b93b1d3fbfe352c181; >= 07d91ef510fb16a2e0ca7453222105835b7ba3b8, < a170b9c0dde83312b8b58ccc91509c7c15711641; >= 07d91ef510fb16a2e0ca7453222105835b7ba3b8, < d824b2dbdcfe3c390278dd9652ea526168ef6850; >= 07d91ef510fb16a2e0ca7453222105835b7ba3b8, < b549113738e8c751b613118032a724b772aa83f2 |
| Linux | Linux | 5.15 |
References
Timeline
- Published
- Last Modified
- Status
- Deferred
Frequently Asked Questions
What is CVE-2025-39977?
How severe is CVE-2025-39977?
How do I fix CVE-2025-39977?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2025
- CVE-2025-39971In the Linux kernel, the following vulnerability has been re…8.8
- CVE-2025-39972In the Linux kernel, the following vulnerability has been re…8.8
- CVE-2025-39973In the Linux kernel, the following vulnerability has been re…8.8
- CVE-2025-39974In the Linux kernel, the following vulnerability has been re…
- CVE-2025-39975In the Linux kernel, the following vulnerability has been re…9.8
- CVE-2025-39976In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2025-39978In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2025-39979In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2025-3998A vulnerability classified as critical was found in CodeAstr…9.8
- CVE-2025-39980In the Linux kernel, the following vulnerability has been re…
- CVE-2025-39981In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2025-39982In the Linux kernel, the following vulnerability has been re…8.8
Are you affected by CVE-2025-39977?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
