CVE-2026-98260Linux Kernel Vulnerability
exec: Cleanup POSIX timers right after de_thread()
Published Oct 6, 2026 · Updated Oct 19, 2026 · Also known as EUVD-2026-93188, GHSA-pr95-77xq-3v99
Key Facts
Patch in the next maintenance window- CVE-2026-98260 is a high-severity vulnerability (CVSS 7.8 v3.1) affecting Azl3 Kernel 6.6.157.1-1 (Microsoft), Linux Kernel, Linux (debian) and 13 more products.
- It is not listed in any known-exploited vulnerabilities catalog. No public exploit code is known.
- EPSS estimates a 0.1% probability of exploitation in the next 30 days.
- Fixed versions are available, including bpftool 6.12.112-1.ph5, Kernel 0:5.14.0-427.156.1.el9_4, Kernel 0:6.12.0-55.111.1.el10_0.
- Brandefense priority: patch in the next maintenance window, because of its high severity, although no exploitation is known.
Scores
CVSS v3.1
7.8
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS (30-day exploit likelihood)
0.1%
Exploit maturity
Proof of concept
ATLAS score
44/100
Publication score, see How it works
Exploitation Verdict
KEV listed
Not listed
Federal due date
None
No federal due date
Ransomware use
Not reported
Attributed actors
None named
Exploit & Defence Guidance
Exploit maturity
Proof of concept
Public exploit code
2
Proof-of-concept links
In-the-wild evidence
0
Reports of active use
Advisories And Exploit References
- advisoryhttps://www.cve.org/CVERecord?id=CVE-2026-98260
- advisoryhttps://nvd.nist.gov/vuln/detail/CVE-2026-98260
- advisoryRHSA-2026:83707
- advisoryRHSA-2026:83738
- advisoryRHSA-2026:83739
- advisoryRHSA-2026:83775
Description
In the Linux kernel, the following vulnerability has been resolved:
exec: Cleanup POSIX timers right after de_thread()
A per-thread CPU timer holds a reference to the PID of the thread it is attached to and, while it is armed, its node is queued in that thread's posix_cputimers. The task is looked up by that PID.
When a non-leader thread exec()s, de_thread() changes which task owns that PID. pid_task(timer->it.cpu.pid, PIDTYPE_PID) then returns NULL, but the node is still queued on tsk, which is alive. timer_lock_sighand() takes a failed lookup to mean that the node is already dequeued, so it has nothing to undo.
begin_new_exec() calls posix_cpu_timers_exit(me) right after exec_task_namespaces() and that removes the leftover node, so the state normally stays invisible.
But bprm->point_of_no_return is set before de_thread(), so if unshare_files(), set_mm_exe_file(), exec_mmap() or exec_task_namespaces() fails, the task dies before it gets there. exit_itimers() then frees the k_itimer while its node is still queued, and reaping tsk later erases that freed node from the rbtree.
In short:
the non-leader thread B the parent
timer_create(CLOCK_THREAD_CPUTIME_ID) timer_settime() arm_timer() // the node is queued on B execve() de_thread(B) exchange_tids(B, leader) // B's PID now belongs to the leader release_task(leader) exit_signal(leader) posix_cpu_timers_exit(leader) // cleans leader's queue, not B's unhash_process(leader) // that PID has no task anymore exec_mmap() mmap_read_lock_killable(old_mm) kill(B, SIGKILL) // -EINTR get_signal() do_exit() exit_itimers() posix_timer_delete() posix_cpu_timer_del() posix_timer_unhash_and_free() // freed while still queued wait4() release_task(B) posix_cpu_timers_exit(B) cleanup_timerqueue() timerqueue_del() // use-after-free
Move the POSIX timer cleanup right after de_thread() before any of the later failure conditions brings the task into do_exit().
[ tglx: Move the cleanup right after de_thread() ]
Affected Products
25 affected entries in total| Product | Affected versions | Fixed in |
|---|---|---|
| Azl3 Kernel 6.6.157.1-1Microsoft | See advisory | n/a |
| Linux KernelLinux | See advisory | 6.6.158 |
| Linuxdebian | >= 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 | 6.1.190-1 |
| bpftoolphoton | See advisory | 6.12.112-1.ph5 |
| linux-develphoton | See advisory | 6.12.112-1.ph5 |
Patched Releases
bpftool
6.12.112-1.ph5
Kernel
0:5.14.0-427.156.1.el9_4, 0:6.12.0-55.111.1.el10_0, 6.12.112, 6.18.54, 6.6.158, 7.2.8
kernel-devel
7.2.10-1.1
kernel-macros
7.2.10-1.1
kernel-rt
0:5.14.0-284.198.1.rt14.483.el9_2
kernel-source
7.2.10-1.1
kernel-source-vanilla
7.2.10-1.1
Linux
1, 6.1.190-1, 6.12.112-1.ph5, 6.12.113-1, 7.2.8-1, 6.12.112, 6.18.54, 6.6.158, 6f1977cea3e85cd8ab55fb337d3e1725fe61d1ce, 7.2.8, 75aa08b93c65766040f9ca99f41ac85ad22596b6, acb03d3881818581052924a9bbbe92b8741ed448, d602877baf36c43c788a5f472c977e0be414029f, d9ae467e617ca29b825493a362bf0d75ad5f4ac3
Linux Kernel
6.12.112, 6.18.54, 6.6.158, 7.2.8, 7.3-rc4
linux-devel
6.12.112-1.ph5
linux-docs
6.12.112-1.ph5
linux-drivers-gpu
6.12.112-1.ph5
linux-drivers-sound
6.12.112-1.ph5
linux-python3-perf
6.12.112-1.ph5
linux-tools
6.12.112-1.ph5
Timeline
Publicly disclosed
Oct 6, 2026
Last updated
Oct 19, 2026
Weakness Type
- CWE-825 Expired Pointer Dereference
References
- advisorycve.org · CVERecord
- advisorynvd.nist.gov · CVE-2026-98260
- advisoryRHSA-2026:83707
- advisoryRHSA-2026:83738
- advisoryRHSA-2026:83739
FAQ
Common Questions.
In the Linux kernel, the following vulnerability has been resolved: exec: Cleanup POSIX timers right after de_thread() A per-thread CPU timer holds a reference to the PID of the thread it is attached to and, while it is armed, its node is queued in that thread's posix_cputimers.
Affected: Azl3 Kernel 6.6.157.1-1 (Microsoft); Linux Kernel; Linux (debian) versions >= 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59, among others. The full list is in the CVE brief.
It is not listed in any known-exploited vulnerabilities catalog.
No, it is not currently listed in the CISA Known Exploited Vulnerabilities catalog.
No public exploit code is known.
Fixed versions are available, including bpftool 6.12.112-1.ph5, Kernel 0:5.14.0-427.156.1.el9_4, Kernel 0:6.12.0-55.111.1.el10_0.
Brandefense priority: patch in the next maintenance window, because of its high severity, although no exploitation is known.
Is CVE-2026-98260 On Your Attack Surface?
Brandefense matches it against the products discovered on your perimeter and opens a finding the day a CVE like this is listed.
Request A Demo