CVE-2026-98775 in Linux
Tóm tắt
Bởi VulDB • 22/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
nitro_enclaves: sửa lỗi use-after-free khi yêu cầu SLOT_ALLOC thất bại
Khi ne_create_vm_ioctl() không thành công trong việc thực hiện yêu cầu SLOT_ALLOC sau khi anon_inode_getfile() hoạt động đúng, đường dẫn xử lý lỗi sẽ gọi fput(enclave_file) và sau đó giải phóng (free) đối tượng ne_enclave.
Trong ngữ cảnh người dùng bình thường (userspace), hàm fput() trì hoãn việc thực thi __fput() cuối cùng thông qua task_work. Do đó, ne_enclave_release() chạy sau khi ne_enclave đã được giải phóng và cố gắng truy cập vào ne_enclave->slot_uid, gây ra lỗi use-after-free: KASAN: slab-use-after-free trong ne_enclave_release.
Enclave không có slot nào được phân bổ và chưa được liên kết vào danh sách enclaves trên đường dẫn lỗi này, vì vậy ne_enclave_release() dự kiến sẽ trả về sớm khi slot_uid bằng 0. Tuy nhiên, việc đọc slot_uid đã truy cập vào đối tượng đã bị giải phóng.
Hãy đặt enclave_file->private_data thành NULL trước khi gọi fput() trong đường dẫn xử lý lỗi. Khi đó, ne_enclave_release() sẽ ngay lập tức trả về nếu private_data là NULL, để lại đường dẫn lỗi ioctl làm chủ sở hữu duy nhất của ne_enclave. Điều này an toàn vì tệp tin chưa được cài đặt qua fd_install().
Đã kiểm thử trên máy AWS EC2 m5.2xlarge với CONFIG_KASAN=y. Không có bản vá, trình tái hiện (reproducer) sẽ kích hoạt lỗi KASAN slab-use-after-free trong mọi lần SLOT_ALLOC thất bại. Với bản vá, không có báo cáo KASAN nào được tạo ra và lỗi SLOT_ALLOC vẫn được trả về. Việc tạo và hủy enclave bình thường không bị ảnh hưởng.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.