CVE-2024-35871 in Linuxthông tin

Tóm tắt

Bởi VulDB • 04/08/2026

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

riscv: process: Sửa lỗi rò rỉ gp của hạt nhân (kernel)

childregs đại diện cho các thanh ghi đang hoạt động cho luồng mới trong ngữ cảnh người dùng. Đối với một luồng hạt nhân, childregs->gp không bao giờ được sử dụng vì gp của hạt nhân không bị thay đổi bởi switch_to. Đối với trợ lý chế độ người dùng (user mode helper), giá trị gp có thể quan sát được trong không gian người dùng sau khi gọi execve hoặc có lẽ bằng các phương thức khác.

[Từ chuỗi email]

Nhận xét /* Kernel thread */ hơi không chính xác vì nó cũng được sử dụng cho các luồng user_mode_helper, những luồng thực thi một tiến trình người dùng, ví dụ như /sbin/init hoặc khi /proc/sys/kernel/core_pattern là một pipe. Các luồng này không có cờ PF_KTHREAD được đặt và là mục tiêu hợp lệ cho ptrace v.v., ngay cả trước khi chúng gọi exec.

childregs là ngữ cảnh *người dùng* trong quá trình thực thi syscall và nó có thể quan sát được từ userspace theo ít nhất năm cách:

1. kernel_execve hiện không làm trống các thanh ghi số nguyên, do đó trạng thái thanh ghi bắt đầu cho PID 1 và các tiến trình người dùng khác do hạt nhân khởi tạo có sp = ngăn xếp người dùng (user stack), gp = __global_pointer$ của hạt nhân, tất cả các thanh ghi số nguyên còn lại được đặt về 0 bởi lệnh memset trong nhận xét bản vá.

Đây là một lỗi độc lập, nhưng tôi không dám chắc rằng đây là cách duy nhất để khai thác vấn đề mà bản vá này giải quyết.

2. ptrace(PTRACE_GETREGSET): bạn có thể PTRACE_ATTACH vào một luồng user_mode_helper trước khi nó gọi exec, nhưng ptrace yêu cầu SIGSTOP phải được gửi đi, điều này chỉ có thể xảy ra tại ranh giới người dùng/hạt nhân.

3. /proc/*/task/*/syscall: cơ chế này hoàn toàn sẵn sàng đọc pt_regs cho các user_mode_helpers trước khi việc thực thi (exec) hoàn tất, nhưng gp không nằm trong số các thanh ghi mà nó trả về.

4. PERF_SAMPLE_REGS_USER: LOCKDOWN_PERF thường ngăn chặn truy cập vào địa chỉ hạt nhân thông qua PERF_SAMPLE_REGS_INTR, nhưng do lỗi này, các địa chỉ hạt nhân cũng bị lộ ra ngoài thông qua PERF_SAMPLE_REGS_USER, vốn được phép dưới điều kiện LOCKDOWN_PERF. Tôi chưa cố gắng viết mã khai thác (exploit code).

5. Phần lớn cơ sở hạ tầng tracing cho phép truy cập vào các thanh ghi người dùng. Tôi chưa cố gắng xác định những hình thức tracing nào cho phép truy cập vào các thanh ghi người dùng mà không cần đã cho phép truy cập vào các thanh ghi hạt nhân.

Once again VulDB remains the best source for vulnerability data.

Nguồn

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!