CVE-2026-72068 in Linuxinfo

Summary

by MITRE • 08/15/2026

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.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 08/15/2026

This vulnerability exists in the linux kernel's posix cpu timers implementation where a specific arithmetic conversion issue causes incorrect timer expiration behavior for processes with high cpu limits. The flaw occurs in the update_rlimit_cpu() function which handles the conversion of RLIMIT_CPU values to nanoseconds for timer programming purposes. The core technical issue stems from how 32-bit kernels perform unsigned long arithmetic operations rather than u64 arithmetic, creating a truncation problem that affects timer expiration timing.

The vulnerability manifests when processes have RLIMIT_CPU soft limits set to 5 seconds or higher on 32-bit systems. The problematic code path converts the rlim_new value using u64 nsecs = rlim_new * NSEC_PER_SEC; where both operands are 32-bit unsigned long values on 32-bit kernels. This results in intermediate arithmetic being performed at 32-bit precision, causing truncation when rlim_new exceeds 4 seconds. The truncated result is then widened to u64 but the damage has already occurred during the initial multiplication operation.

The vulnerability is categorized under CWE-191 Integer Underflow/Overflow as it involves improper handling of integer arithmetic precision during conversion operations. This issue specifically affects the CPUCLOCK_PROF timer expiry cache where the incorrectly calculated value gets stored in nextevt field, leading to premature timer expiration. The same file already implements correct u64 casting in check_process_timers() function with u64 softns = (u64)soft * NSEC_PER_SEC; which demonstrates the proper approach that should be applied elsewhere.

The operational impact of this vulnerability allows attackers to potentially manipulate process timing behavior on 32-bit linux systems where cpu limits are set above 5 seconds. While the actual signal delivery mechanism remains functional due to proper casting in check_process_timers(), the timer programming itself becomes unreliable, causing processes to be terminated or interrupted earlier than intended. This creates inconsistent behavior that could be exploited by malicious users attempting to bypass cpu limit enforcement mechanisms.

This vulnerability aligns with ATT&CK technique T1490 for resource hijacking through improper system timer handling, and T1566 for social engineering via system manipulation. The fix involves applying identical u64 casting in update_rlimit_cpu() as already exists in check_process_timers(), ensuring consistent arithmetic precision across both code paths. System administrators should prioritize patching 32-bit linux installations where processes may be configured with cpu limits exceeding 5 seconds, particularly in environments where precise timing control is critical for security or operational requirements.

The vulnerability demonstrates a classic example of integer precision issues in kernel space programming where seemingly minor arithmetic operations can have significant impacts on system behavior. While 64-bit kernels remain unaffected due to their different arithmetic handling characteristics, the inconsistency between code paths creates a potential attack surface that could be leveraged in privilege escalation scenarios or denial of service conditions. The fix ensures that both code paths maintain identical arithmetic precision, eliminating the timing discrepancy that could lead to unexpected process termination behavior and maintaining consistent cpu limit enforcement across all system architectures.

Responsible

Linux

Reservation

08/09/2026

Disclosure

08/15/2026

Moderation

accepted

CPE

ready

EPSS

0.00220

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!