CVE-2026-64571 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:
wifi: p54: xác thực độ dài khung RX trong hàm p54_rx_eeprom_readback()
Hàm `p54_rx_eeprom_readback()` sao chép phần EEPROM yêu cầu từ một khung đọc lại do thiết bị cung cấp mà không kiểm tra xem skb (socket buffer) có thực sự chứa đủ số byte đó hay không. Commit da1b9a55ff11 ("wifi: p54: ngăn chặn tràn bộ đệm trong p54_rx_eeprom_readback()") đã khắc phục tình trạng tràn vùng đích bằng cách sao chép một kích thước cố định `priv->eeprom_slice_size` (và từ chối nếu độ dài được quảng bá không khớp), nhưng phía nguồn vẫn chưa bị giới hạn: không có gì xác minh rằng khung đủ dài để cung cấp số byte đó.
Một thiết bị USB độc hại có thể gửi một khung ngắn mà giá trị `len` được quảng bá trùng với `priv->eeprom_slice_size`, trong khi phần payload bị cắt cụt. Phép kiểm tra bằng nhau sẽ vượt qua và hàm `memcpy()` đọc quá giới hạn cuối của skb, làm rò rỉ dữ liệu từ heap liền kề:
BUG: KASAN: slab-out-of-bounds in p54_rx (drivers/net/wireless/intersil/p54/txrx.c:507) Read of size 1016 at addr ffff88800f077114 by task swapper/0/0 Call Trace: <IRQ> ... __asan_memcpy (mm/kasan/shadow.c:105) p54_rx (drivers/net/wireless/intersil/p54/txrx.c:507) p54u_rx_cb (drivers/net/wireless/intersil/p54/p54usb.c:163) __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1657) dummy_timer (drivers/usb/gadget/udc/dummy_hcd.c:2005) ... </IRQ>
Địa chỉ lỗi thuộc về đối tượng tại ffff88800f0770c0, nằm trong cache skbuff_small_head có kích thước 704 byte. Địa chỉ lỗi nằm cách 84 bytes bên trong vùng đã phân bổ 704-byte [ffff88800f0770c0, ffff88800f077380).
Kiểm tra xem phần slice có vừa với skb trước khi sao chép.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.