CVE-2026-72068: posix-cpu-timers: Use u64 multiplication in update_rlimit_cpu()
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026081518-CVE-2026-72068-23e7@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: Use u64 multiplication in update_rlimit_cpu() update_rlimit_cpu() converts the RLIMIT_CPU value to nanoseconds with u64 nsecs = rlim_new * NSEC_PER_SEC; On 32-bit kernels both rlim_new (unsigned long) and NSEC_PER_SEC (1000000000L) are 32-bit, so the multiplication is performed in unsigned long and truncated for rlim_new > 4 seconds before being widened to u64. The same file already casts to u64 for the matching computation in check_process_timers(): u64 softns = (u64)soft * NSEC_PER_SEC; As a result, the truncated value is installed into the CPUCLOCK_PROF expiry cache (nextevt), causing the process CPU timer to be programmed to fire prematurely for any RLIMIT_CPU soft limit >= 5 seconds. The actual SIGXCPU/SIGKILL decision in check_process_timers() already casts to u64 and is therefore correct, so limit enforcement is not broken; only the expiry-cache programming is wrong. Apply the same cast here so both paths convert rlim_cur identically. 64-bit kernels are unaffected. The Linux kernel CVE team has assigned CVE-2026-72068 to this issue. Affected and fixed versions =========================== Issue introduced in 4.11 with commit 858cf3a8c59968e7c5f7c1a1192459a0d52d1ab4 and fixed in 5.10.261 with commit feb5c87c8514444ba891b75a5a3eae57c64edaf8 Issue introduced in 4.11 with commit 858cf3a8c59968e7c5f7c1a1192459a0d52d1ab4 and fixed in 5.15.212 with commit 384628d6cdde0fcd76868606fad3ad8293100afb Issue introduced in 4.11 with commit 858cf3a8c59968e7c5f7c1a1192459a0d52d1ab4 and fixed in 6.1.178 with commit 1fafc4d9b411645eb34de43362b966dc8fb3e263 Issue introduced in 4.11 with commit 858cf3a8c59968e7c5f7c1a1192459a0d52d1ab4 and fixed in 6.6.145 with commit cff8281bacd2866767e6194c3079d33b6c5a74f4 Issue introduced in 4.11 with commit 858cf3a8c59968e7c5f7c1a1192459a0d52d1ab4 and fixed in 6.12.97 with commit edf6babb9edd2d3e19229ade339081f439d4f478 Issue introduced in 4.11 with commit 858cf3a8c59968e7c5f7c1a1192459a0d52d1ab4 and fixed in 6.18.40 with commit ea6a188ee805e841a0e242f14d15953e0dfa74bb Issue introduced in 4.11 with commit 858cf3a8c59968e7c5f7c1a1192459a0d52d1ab4 and fixed in 7.1.5 with commit 571e1f10b5996ba3e4dc63ea77de4aa309c384ce Issue introduced in 4.11 with commit 858cf3a8c59968e7c5f7c1a1192459a0d52d1ab4 and fixed in 7.2-rc1 with commit 26aff38fefb1d6cd87e22525f41cc8f1aa61b24f Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-72068 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: kernel/time/posix-cpu-timers.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/feb5c87c8514444ba891b75a5a3eae57c64edaf8 https://git.kernel.org/stable/c/384628d6cdde0fcd76868606fad3ad8293100afb https://git.kernel.org/stable/c/1fafc4d9b411645eb34de43362b966dc8fb3e263 https://git.kernel.org/stable/c/cff8281bacd2866767e6194c3079d33b6c5a74f4 https://git.kernel.org/stable/c/edf6babb9edd2d3e19229ade339081f439d4f478 https://git.kernel.org/stable/c/ea6a188ee805e841a0e242f14d15953e0dfa74bb https://git.kernel.org/stable/c/571e1f10b5996ba3e4dc63ea77de4aa309c384ce https://git.kernel.org/stable/c/26aff38fefb1d6cd87e22525f41cc8f1aa61b24f