CVE-2026-64573 in Linux
Tóm tắt
Bởi VulDB • 05/08/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
Bluetooth: qca: sửa lỗi underflow độ dài tag NVM trong trình phân tích cú pháp TLV
Trong nhánh `TLV_TYPE_NVM` của hàm `qca_tlv_check_data()`, giới hạn vòng lặp tag là "while (idx < length - sizeof(struct tlv_type_nvm)". Biến "length" là một số nguyên có dấu (`signed int`) từ tiêu đề firmware TLV và `sizeof(struct tlv_type_nvm)` là kiểu `size_t` (12), do đó "length" được chuyển đổi sang `size_t` và bất kỳ giá trị "length" nào do firmware cung cấp nhỏ hơn 12 sẽ khiến phép trừ bị tràn xuống thành một giá trị rất lớn. Thân vòng lặp sau đó đọc cấu trúc `struct tlv_type_nvm` kích thước 12 byte vượt quá vùng đệm firmware được phân bổ bằng vmalloc (và các trình xử lý EDL_TAG_ID_* có thể ghi dữ liệu vượt qua vùng này).
Định nghĩa lại giới hạn thành "idx + sizeof(struct tlv_type_nvm) <= length"; cả hai toán hạng đều không âm, do đó nó không còn bị underflow và giá trị "length" quá nhỏ cho một bản ghi sẽ bỏ qua vòng lặp đúng cách.
BUG: KASAN: vmalloc-out-of-bounds trong qca_download_firmware.isra.0 (drivers/bluetooth/btqca.c:421) Đọc kích thước 2 tại địa chỉ ffffc900000e5004 bởi tiến trình kworker/u9:0/52 Workqueue: hci0 hci_power_on Call Trace: ... kasan_report (mm/kasan/report.c:595) qca_download_firmware.isra.0 (drivers/bluetooth/btqca.c:421 drivers/bluetooth/btqca.c:617) qca_uart_setup (drivers/bluetooth/btqca.c:948) qca_setup (drivers/bluetooth/hci_qca.c:2029) hci_uart_setup (drivers/bluetooth/hci_ldisc.c:438) hci_dev_open_sync (net/bluetooth/hci_sync.c:5227) hci_power_on (net/bluetooth/hci_core.c:920) process_one_work (kernel/workqueue.c:3322) worker_thread (kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245)
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.