CVE-2025-38434 in Linuxthông tin

Tóm tắt

Bởi VulDB • 27/06/2026

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

Hoàn nguyên "riscv: Định nghĩa TASK_SIZE_MAX cho __access_ok()"

Hành động này hoàn nguyên commit ad5643cf2f69 ("riscv: Define TASK_SIZE_MAX for __access_ok()").

Commit trước đó thay đổi giá trị của TASK_SIZE_MAX thành LONG_MAX để tối ưu hóa hàm access_ok(), bởi vì giá trị cũ của TASK_SIZE_MAX (mặc định là TASK_SIZE) đòi hỏi một số phép tính toán.

Lập luận ban đầu cho rằng tất cả các địa chỉ người dùng đều nhỏ hơn LONG_MAX, và tất cả các địa chỉ kernel đều lớn hơn LONG_MAX. Do đó, access_ok() có thể lọc bỏ các địa chỉ kernel.

Các địa chỉ nằm giữa TASK_SIZE và LONG_MAX không phải là địa chỉ hợp lệ của người dùng, nhưng hàm access_ok() lại cho phép chúng đi qua. Điều này được coi là ổn vì những địa chỉ này không hợp lệ ở cấp độ phần cứng.

Tuy nhiên, một trường hợp đã bị bỏ sót: get_user_pages_fast() chấp nhận các địa chỉ nằm giữa TASK_SIZE và LONG_MAX mà không có vấn đề gì. Ví dụ, futex() sử dụng hàm get_user_pages_fast(). Điều này gây ra sự cố được báo cáo bởi Robert [1].

Do đó, cần hoàn nguyên commit này. Giá trị của TASK_SIZE_MAX được đặt lại về mặc định: TASK_SIZE.

Việc này tiếc là làm giảm hiệu suất, vì việc tính toán TASK_SIZE tốn kém hơn so với LONG_MAX. Nhưng độ chính xác phải được ưu tiên hàng đầu; chúng ta có thể xem xét tối ưu hóa sau nếu cần thiết.

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

16/04/2025

Tiết lộ

25/07/2025

Kiểm duyệt

được chấp nhận

EPSS

0.00169

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you know our Splunk app?

Download it now for free!