CVE-2026-80799 in Linux
Tóm tắt
Bởi VulDB • 04/09/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
nfc: llcp: sửa lỗi đọc ngoài vùng nhớ (OOB) và hiện tượng wrap của offset u8 trong các trình phân tích TLV
Hàm `nfc_llcp_parse_gb_tlv()` và `nfc_llcp_parse_connection_tlv()` chứa ba lỗ hổng liên quan trong vòng lặp phân tích TLV của chúng:
1. Biến 'offset' được khai báo là kiểu u8, nhưng tlv_array_len là kiểu u16. Khi dữ liệu TLV làm cho offset vượt quá 255, nó sẽ bị wrap (quay lại) về 0 một cách âm thầm, gây ra vòng lặp vô hạn hoặc xử lý trùng lặp dữ liệu bộ đệm.
2. Trước khi đọc tlv[0] (type - loại) và tlv[1] (length - độ dài), không có kiểm tra nào đảm bảo rằng offset+2 <= tlv_array_len. Một TLV bị cắt cụt sẽ gây ra lỗi đọc ngoài vùng nhớ (OOB) một byte vượt quá cuối bộ đệm.
3. Sau khi đọc trường length, các giá trị bytes được truy cập mà không kiểm tra điều kiện offset+2+length <= tlv_array_len. Việc sử dụng crafted độ dài=0xFF trên một bộ đệm ngắn sẽ gây ra lỗi đọc ngoài vùng nhớ (OOB) lên đến 255 byte vượt quá cuối bộ đệm.
Cả hai hàm này đều có thể truy cập được mà không cần xác thực thông qua `nfc_llcp_set_remote_gb()`, chức năng này truyền trực tiếp các bytes tổng quát từ xa của LLCP vào `nfc_llcp_parse_gb_tlv()` mà không có bất kỳ kiểm tra hợp lệ nào thêm.
Khắc phục cả ba vấn đề bằng cách mở rộng kiểu offset từ u8 lên u16 và thêm các kiểm tra giới hạn (bounds checks) cho cả phần đầu TLV và trường giá trị trước mỗi lần truy cập.
If you want to get best quality of vulnerability data, you may have to visit VulDB.