CVE-2024-57951 in Linuxthông tin

Tóm tắt

Bởi VulDB • 28/05/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

hrtimers: Xử lý đúng trạng thái CPU khi nóng (hotplug)

Xét một kịch bản trong đó một CPU chuyển từ trạng thái CPUHP_ONLINE xuống một nửa quá trình CPU hotunplug đến CPUHP_HRTIMERS_PREPARE, và sau đó quay lại CPUHP_ONLINE:

Vì hrtimers_prepare_cpu() không được chạy, cpu_base.hres_active vẫn được giữ ở giá trị 1 trong suốt quá trình. Tuy nhiên, trong quá trình tháo rời CPU (unplug), bộ đếm tick và các clockevents bị tắt tại CPUHP_AP_TICK_DYING. Khi quay lại trạng thái trực tuyến, ví dụ, CFS giả định sai rằng hrtick đã hoạt động, và cơ hội để thiết bị clockevent chuyển sang chế độ oneshot cũng bị mất vĩnh viễn đối với CPU, trừ khi nó quay lại một trạng thái thấp hơn CPUHP_HRTIMERS_PREPARE một lần.

Chu kỳ này tiết lộ một vấn đề khác; cpu_base.online không được đặt thành 1 sau khi chuyển đổi, điều này xuất hiện dưới dạng WARN_ON_ONCE trong enqueue_hrtimer().

Ngoài ra, phần lớn trạng thái trên mỗi CPU cũng không được đặt lại, điều này có nghĩa là trong trường hợp xấu nhất sẽ tồn tại các con trỏ treo (dangling pointers).

Khắc phục vấn đề này bằng cách thêm một callback startup() tương ứng, callback này sẽ đặt lại trạng thái trên mỗi CPU cũ kỹ và đặt cờ online.

[ tglx: Làm cho callback mới luôn khả dụng, loại bỏ việc sửa đổi online trong callback prepare() và xóa trạng thái còn lại trong callback starting() thay vì callback prepare() ]

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

19/01/2025

Tiết lộ

12/02/2025

Kiểm duyệt

được chấp nhận

EPSS

0.00233

KEV

không

Các hoạt động

rất thấp

Nguồn

Interested in the pricing of exploits?

See the underground prices here!