← Back to browse · API

CVE-2025-38352

Severity
HIGH
CVSS
7.8
EPSS
0.0125
Risk score
56.64
CISA KEV
Yes
PoC
Yes
Published
2025-07-22
Modified
2026-08-05
First seen
2026-08-05
Aliases
EUVD-2025-22297, GHSA-MR4J-MH66-4679
Products
Linux:Kernel, Linux:Linux 0bdd2ed4138ec04e09b4f8165981efc99e439f55 <2c72fe18cc5f9f1750f5bc148cf1c94c29e106ff, Linux:Linux 0bdd2ed4138ec04e09b4f8165981efc99e439f55 <2f3daa04a9328220de46f0d5c919a6c0073a9f0b, Linux:Linux 0bdd2ed4138ec04e09b4f8165981efc99e439f55 <460188bc042a3f40f72d34b9f7fc6ee66b0b757b, Linux:Linux 0bdd2ed4138ec04e09b4f8165981efc99e439f55 <764a7a5dfda23f69919441f2eac2a83e7db6e5bb, Linux:Linux 0bdd2ed4138ec04e09b4f8165981efc99e439f55 <78a4b8e3795b31dae58762bc091bb0f4f74a2200, Linux:Linux 0bdd2ed4138ec04e09b4f8165981efc99e439f55 <c076635b3a42771ace7d276de8dc3bc76ee2ba1b, Linux:Linux 0bdd2ed4138ec04e09b4f8165981efc99e439f55 <c29d5318708e67ac13c1b6fc1007d179fb65b4d7, Linux:Linux 0bdd2ed4138ec04e09b4f8165981efc99e439f55 <f90fff1e152dedf52b932240ebbd670d83330eca, Linux:Linux 2.6.36, Linux:Linux patch: 0, Linux:Linux patch: 5.10.239, Linux:Linux patch: 5.15.186, Linux:Linux patch: 5.4.295, Linux:Linux patch: 6.1.142, Linux:Linux patch: 6.12.34, Linux:Linux patch: 6.15.3, Linux:Linux patch: 6.16, Linux:Linux patch: 6.6.94, debian:debian_linux, linux:linux_kernel, unix
Sources
nvd CVE-2025-38352
cisa.gov CVE-2025-38352
euvd EUVD-2025-22297
packetstorm bd2236092be59388bfdefee2|CVE-2025-38352

Description

In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() If an exiting non-autoreaping task has already passed exit_notify() and calls handle_posix_cpu_timers() from IRQ, it can be reaped by its parent or debugger right after unlock_task_sighand(). If a concurrent posix_cpu_timer_del() runs at that moment, it won't be able to detect timer->it.cpu.firing != 0: cpu_timer_task_rcu() and/or lock_task_sighand() will fail. Add the tsk->exit_state check into run_posix_cpu_timers() to fix this. This fix is not needed if CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y, because exit_task_work() is called before exit_notify(). But the check still makes sense, task_work_add(&tsk->posix_cputimers_work.work) will fail anyway in this case.

References