Skip to content
Connect AISign inSign up free
CVE-2026-645607.8High

CVE-2026-64560: posix-cpu-timers: Prevent UAF caused by non-leader exec() race

Linux

Vendor fix available · Affected: Linux · Exploitation: public proof of concept (unverified)

ExploitationProof of concept public

Not in CISA KEV as of catalogue 2026.11.13 (13 Nov)

  1. In CISA KEV: not seen
  2. Exploited (reported): not seen
  3. Scanning observed: not seen
  4. Proof of concept public21 public GitHub repositories (unverified), listed by PoC-in-GitHub23 Jul
  5. Not established: not seen
0.7%probability of exploitation in the next 30 days
52nd percentile
050100

Higher than 52% of scored CVEs

7.8HighCVSS 3.1
LowHigh

DescriptionNVD

In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: Prevent UAF caused by non-leader exec() race Wongi and Jungwoo decoded and reported a non-leader exec() related race which can result in an UAF: sys_timer_delete() exec() posix_cpu_timer_del() // Observes old leader p = pid_task(pid, pid_type); de_thread() switch_leader(); release_task(old_leader) __exit_signal(old_leader) sighand = lock(old_leader, sighand); posix_cpu_timers*_exit(); sighand = lock_task_sighand(p) unhash_task(old_leader); sh = lock(p, sighand) old_leader->sighand = NULL; unlock(sighand); (p->sighand == NULL) unlock(sh) return NULL; // Returns without action if(!sighand) return 0; free_posix_timer(); This is "harmless" unless the deleted timer was armed and enqueued in p->signal because on exec() a TGID targeted timer is inherited. As sys_timer_delete() freed the underlying posix timer object run_posix_cpu_timers() or any timerqueue related add/delete operations on other timers will access the freed object's timerqueue node, which results in an UAF. There is a similar problem vs. posix_cpu_timer_set(). For regular posix timers it just transiently returns -ESRCH to user space, but for the use case in do_cpu_nanosleep() it's the same UAF just that the k_itimer is allocated on the stack. Also posix_cpu_timer_rearm() fails to rearm the timer, which means it stops to expire. While debating solutions Frederic pointed out another problem: posix_cpu_timer_del(tmr) __exit_signal(p) posix_cpu_timers*_exit(p); unhash_task(p); p->sighand = NULL; sh = lock_task_sighand(p) sighand = p->sighand; if (!sighand) return NULL; lock(sighand); if (!sh) WARN_ON_ONCE(timer_queued(tmr)); On weakly ordered architectures it is not guaranteed that posix_cpu_timer_del() will observe the stores in posix_cpu_timers*_exit() when p->sighand is observed as NULL, which means the WARN() can be a false positive. Solve these issues by: 1) Changing the store in __exit_signal() to smp_store_release().

On the Atlas

Every published CVE is on the CyberSIXT Atlas, grouped by weakness, vendor and month.

Open the Atlas
Exploitation
Unlikely (under 1%). EPSS under 1%, or no score yet.
CISA KEV
Not listed
Public check
No public nuclei template
Vendor
Linux
Published
July 2026

What changed

  1. PoC-in-GitHub lists 21 public GitHub repositories (unverified) PoC-in-GitHub

Coverage2 articles · 1 outlet

One row per outlet, in order of first report. First in our coverage: SecurityOnline, 7 Aug.

Full timeline
Quiet for 14 weekslast report 12 Aug2 articles1 outlet
7 Aug · SecurityOnline first27 Sep14 Oct31 OctNow
  • Fri 7 Aug, 12:11 UTC. SecurityOnline, first report. Tails 7.10.1 patches CVE-2026-645.
  • Wed 12 Aug, 02:31 UTC. SecurityOnline. Linux Kernel CPU Timer Flaw Lets Local Users Gain Root Access.
All coveragerunning total2SecurityOnl…28 Aug11 Sep15 OctNow
  • First report
  • Article
  • Running total
Show as table
2 articles about CVE-2026-64560 from 1 outlets
Published (UTC)OutletHeadline
7 Aug 12:11SecurityOnlineTails 7.10.1 patches CVE-2026-645
12 Aug 02:31SecurityOnlineLinux Kernel CPU Timer Flaw Lets Local Users Gain Root Access
  1. Tails 7.10.1 patches CVE-2026-645
    SecurityOnline · first in our coverage

New articles also arrive in the RSS feed.

References