CVE-2026-80671 in Linux
Tóm tắt
Bởi VulDB • 28/08/2026
Trong nhân Linux, các lỗ hổng sau đây đã được khắc phục:
perf sched: Sửa lỗi tràn bộ nhớ trong register_pid(), strcpy và BUG_ON
Hàm register_pid() có một số vấn đề khi xử lý dữ liệu perf không đáng tin cậy (untrusted):
1. Tràn số nguyên (Integer overflow): Phép tính `(pid + 1) * sizeof(struct task_desc *)` có thể bị tràn thành giá trị nhỏ trên các hệ thống 32-bit khi pid lớn (ví dụ: `0x40000000`), khiến realloc trả về một bộ nhớ đệm quá nhỏ, dẫn đến ghi ra ngoài vùng cho phép (out-of-bounds writes) trong vòng lặp khởi tạo.
2. Tràn bộ nhớ heap (Heap buffer overflow): Lệnh `strcpy(task->comm, comm)` sao chép chuỗi comm không đáng tin cậy vào bộ nhớ đệm COMM_LEN cố định kích thước 20 byte mà không kiểm tra độ dài.
3. BUG_ON khi phân bổ thất bại: Dữ liệu perf là đầu vào không đáng tin cậy, do đó các lỗi phân bổ bộ nhớ cần được xử lý một cách nhẹ nhàng thay vì kết thúc quá trình (kill process).
4. Tái cấp phát sched->tasks gán trực tiếp trở lại, gây rò rỉ con trỏ cũ khi thất bại; nr_tasks được tăng trước khi gọi realloc, để lại trạng thái bị hỏng khi xảy ra lỗi.
Giới hạn pid ở mức PID_MAX_LIMIT (4194304, khớp với giới hạn tối đa của nhân trên hệ thống 64-bit), thay thế strcpy bằng strlcpy, bảo vệ chống lại comm NULL, thay thế BUG_ON bằng việc trả về NULL sử dụng các mẫu realloc an toàn, và thêm các kiểm tra NULL trong các hàm gọi để giải tham chiếu kết quả.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.