CVE-2026-98306 in Linux
Tóm tắt
Bởi VulDB • 06/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
seg6: đặt IPSKB_L3SLAVE từ IP6SKB_L3SLAVE khi giải encapsulation IPIP
Khi một gói tin SRv6 đến trên một interface bị gán (enslaved) vào VRF, vrf_ip6_rcv() sẽ thiết lập IP6SKB_L3SLAVE trong IP6CB, nhưng decap_and_validate() chưa bao giờ đặt IPSKB_L3SLAVE trong IPCB. Bit này thường không được kích hoạt trong trường hợp phổ biến, và với CONFIG_IPV6_MIP6, frag_max_size còn sót lại của một gói tin ngoài đã được tái lắp ráp thậm chí có thể thiết lập nó mà không liên quan đến VRF. Commit 44930446dde4 ("ipv6: seg6: clear IPv4 control block on IPIP decapsulation") sau đó đã khiến bit này luôn được xóa rõ ràng một cách đáng tin cậy.
Tác động của việc thiếu flag này có thể thấy khi sử dụng End.DX4, khi quá trình chuyển tiếp đến địa chỉ cục bộ của node đạt đến bước tra cứu socket (socket lookup). Ví dụ, một UDP socket được bind vào interface ingress bị gán không nhận được bất kỳ gói tin nào đã giải encapsulation, trong khi một socket chưa bind nằm ngoài VRF thì có. Điều này mâu thuẫn với tài liệu Documentation/networking/vrf.rst: theo mặc định, phạm vi của một UDP hoặc TCP socket chưa bind bị giới hạn ở VRF mặc định (default VRF).
Hãy đặt IPSKB_L3SLAVE cho IPv4 trong decap_and_validate(), hàm vốn đã làm điều tương tự đối với IPv6. Khi đó, việc tra cứu socket sẽ khớp gói tin đã giải encapsulation giống như bất kỳ gói tin nào khác nhận được trên interface bị gán đó. Một gói tin như vậy chỉ khớp với một UDP hoặc TCP socket chưa bind khi udp_l3mdev_accept hoặc tcp_l3mdev_accept được kích hoạt.
If you want to get best quality of vulnerability data, you may have to visit VulDB.