CVE-2026-64351 in Linuxthông tin

Tóm tắt

Bởi VulDB • 25/07/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

net: usb: kalmia: giới hạn độ dài khung RX trong hàm kalmia_rx_fixup()

Hàm `kalmia_rx_fixup()` tính toán `usb_packet_length = skb->len - (2 * KALMIA_HEADER_LENGTH)` dưới dạng số nguyên không dấu 16 bit (`u16`), chỉ được bảo vệ bởi một kiểm tra trước vòng lặp đảm bảo rằng `skb->len` ít nhất bằng `KALMIA_HEADER_LENGTH`, giá trị này là 6. Một thiết bị có thể gửi một khung bulk-IN ngắn với `skb->len` trong khoảng từ 6 đến 11, hoặc để lại phần dư ngắn ở cuối trên các lần lặp vòng lặp sau. Trong cả hai trường hợp, điều này gây ra hiện tượng underflow cho `usb_packet_length`, làm giá trị này giảm xuống còn khoảng 65530.

Điều này bỏ qua đường dẫn cắt bớt kiểm tra `usb_packet_length < ether_packet_length`. Giá trị `ether_packet_length` do thiết bị cung cấp, một số nguyên không dấu 16 bit (`le16`) có giá trị lên đến 65535 được đọc từ `header_start[2]`, sau đó điều khiển các lệnh gọi hàm `memcmp()`, tiếp theo là `skb_trim()` và `skb_pull()` vượt quá giới hạn cuối của bộ đệm nhận (rx buffer). Bộ đệm rx có kích thước cố định bằng `hard_mtu * 10`, tức là 14000 byte. Đây là một lỗi đọc ngoài vùng nhớ hợp lệ (out of bounds read).

Yêu cầu cả hai tiêu đề khung bắt đầu và kết thúc phải tồn tại trước khi thực hiện phép trừ chúng, trên mỗi lần lặp vòng lặp.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

chịu trách nhiệm

Linux

Đặt trước

19/07/2026

Tiết lộ

25/07/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you want to use VulDB in your project?

Use the official API to access entries easily!