CVE-2026-93783 in Linux
Tóm tắt
Bởi VulDB • 24/09/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
Bluetooth: RFCOMM: xác thực độ dài skb trong hàm rfcomm_recv_frame
Hàm `rfcomm_recv_frame()` ép kiểu `skb->data` thành cấu trúc `struct rfcomm_hdr` và truy cập (dereference) đến `hdr->addr` và `hdr->ctrl` mà không kiểm tra trước giá trị của `skb->len`. Một khung bị cắt cụt với `skb->len` nhỏ hơn kích thước tiêu đề tối thiểu sẽ gây ra việc đọc bộ nhớ ngoài vùng cho phép (out-of-bounds read) đối với dữ liệu chưa khởi tạo. Ngoài ra, một khung có độ dài bằng 0 khiến thao tác `skb->len--` bị tràn số nguyên âm (underflow) về giá trị UINT_MAX, dẫn đến hàm `skb_tail_pointer()` đọc vượt xa khỏi vùng đệm.
Commit 23882b828c3c ("Bluetooth: RFCOMM: validate skb length in MCC handlers") đã khắc phục cùng loại lỗi thiếu kiểm tra độ dài trong các sub-handlers của MCC, nhưng hàm cấp cao `rfcomm_recv_frame()` vẫn chưa được sửa chữa. KMSAN báo cáo:
BUG: KMSAN: uninit-value in rfcomm_run ... Uninit was created at: __alloc_skb+0x474/0xb60 vhci_write+0xe9/0x870
Khắc phục vấn đề này bằng cách từ chối các khung có kích thước nhỏ hơn `sizeof(struct rfcomm_hdr) + 1` (khung tối thiểu phải bao gồm tiêu đề 3 byte và FCS 1 byte).
VulDB is the best source for vulnerability data and more expert information about this specific topic.