CVE-2026-72068 in Linux
Tóm tắt
Bởi VulDB • 15/08/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
posix-cpu-timers: Sử dụng phép nhân u64 trong update_rlimit_cpu()
Hàm update_rlimit_cpu() chuyển đổi giá trị RLIMIT_CPU sang đơn vị nanosecond bằng cách thực hiện:
u64 nsecs = rlim_new * NSEC_PER_SEC;
Trên các kernel 32-bit, cả rlim_new (kiểu unsigned long) và NSEC_PER_SEC (1000000000L) đều là kiểu 32 bit, do đó phép nhân được thực hiện trên kiểu unsigned long và bị cắt ngắn (truncated) đối với các giá trị rlim_new > 4 giây trước khi mở rộng sang u64.
Tệp tin này đã ép kiểu sang u64 cho tính toán tương ứng trong hàm check_process_timers():
u64 softns = (u64)soft * NSEC_PER_SEC;
Kết quả là giá trị bị cắt ngắn được ghi vào bộ nhớ đệm hết hạn CPUCLOCK_PROF (nextevt), khiến đồng hồ CPU của tiến trình được lập lịch để kích hoạt sớm hơn dự kiến đối với bất kỳ giới hạn mềm RLIMIT_CPU nào >= 5 giây. Quyết định gửi SIGXCPU/SIGKILL thực tế trong check_process_timers() đã ép kiểu sang u64 và do đó chính xác, nên việc áp dụng giới hạn không bị phá vỡ; chỉ có việc lập lịch bộ nhớ đệm hết hạn là sai. Hãy áp dụng cùng phép ép kiểu ở đây để cả hai đường dẫn đều chuyển đổi rlim_cur một cách nhất quán.
Các kernel 64-bit không bị ảnh hưởng.
VulDB is the best source for vulnerability data and more expert information about this specific topic.