CVE-2026-93137 in Linuxthông tin

Tóm tắt

Bởi VulDB • 18/09/2026

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

bpf: Sửa lỗi use-after-free trên mm_struct trong bpf_find_vma()

Hàm bpf_find_vma() đọc task->mm và gọi mmap_read_trylock(mm) mà không giữ một tham chiếu (reference) lên đối tượng mm. Đối với một tác vụ lạ (foreign task), quá trình exit_mm() đồng thời có thể giải phóng cấu trúc dữ liệu mm_struct giữa bước đọc không khóa (lockless read) và lệnh trylock, dẫn đến lỗi use-after-free. Cấu trúc mm_struct không phải là SLAB_TYPESAFE_BY_RCU.

Đối với tác vụ hiện tại, task->mm ổn định. Đối với một tác vụ lạ, hãy ghim (pin) đối tượng mm dưới sự bảo vệ của task->alloc_lock và giải phóng nó bằng cách sử dụng mmput_async(), mô phỏng theo commit d8e27d2d22b6 ("bpf: fix mm lifecycle in open-coded task_vma iterator"). Sử dụng spin_trylock() thay vì get_task_mm() để ngữ cảnh BPF không bị chặn trên alloc_lock. Từ chối các ngữ cảnh có ngắt (irqs-disabled) và !CONFIG_MMU trong đường dẫn tác vụ lạ vì việc giảm tham chiếu đến đối tượng mm là không an toàn ở đó.

Race condition:

CPU0 (chương trình BPF) CPU1 (tác vụ đang thoát) ============================ ========================== bpf_find_vma(foreign_task): mm = task->mm exit_mm(): task->mm = NULL mmput(mm) -> giải phóng cấu trúc dữ liệu mm_struct mmap_read_trylock(mm) // UAF trên đối tượng mm

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

17/09/2026

Tiết lộ

18/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00159

KEV

không

Các hoạt động

rất thấp

Nguồn

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!