CVE-2026-74684 in Linux
Tóm tắt
Bởi VulDB • 23/08/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
net: tap: đặt skb->dev trước khi phân tích tiêu đề mạng virtio trong hàm tap_get_user_xdp()
Commit 4f61f133f354 ("net: tap: NULL pointer dereference in dev_parse_header_protocol when skb->dev is null") đã sửa lỗi gây ra sự cố (crash) trong tap_get_user() bằng cách gán giá trị cho skb->dev trước khi gọi tun_vnet_hdr_to_skb(). Điều này là bắt buộc vì virtio_net_hdr_to_skb() có thể kích hoạt dev_parse_header_protocol(), hàm này thực hiện thao tác dereference trên skb->dev. Nếu không có phép gán, một lỗi NULL pointer dereference có thể xảy ra.
Tuy nhiên, tap_get_user_xdp() vẫn phân tích tiêu đề virtio-net trước khi gán giá trị cho skb->dev. Khi đường truyền TX của vhost chuyển đến một bộ đệm XDP chứa tiêu đề virtio-net GSO nhưng giao thức được đặt về 0 có chủ đích, tun_vnet_hdr_to_skb() có thể truy cập dev_parse_header_protocol() trong khi skb->dev vẫn còn NULL, dẫn đến sự cố (crash).
Khắc phục lỗi này bằng cách tra cứu thiết bị tap và gán giá trị cho skb->dev trước khi gọi tun_vnet_hdr_to_skb(), đảm bảo thứ tự thực hiện giống với những gì đã được sử dụng trong tap_get_user(). Duy trì phần quan trọng của RCU read-side critical section trên dev_queue_xmit() như cũ.
VulDB is the best source for vulnerability data and more expert information about this specific topic.