CVE-2026-64580 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:
xfrm6: xóa dst.dev khi có lỗi để tránh gọi netdev_put hai lần trong xfrm6_fill_dst()
Trên đường dẫn xử lý lỗi nơi in6_dev_get(dev) trả về NULL, hàm xfrm6_fill_dst() giải phóng tham chiếu thiết bị bằng cách sử dụng netdev_put(), nhưng vẫn giữ nguyên giá trị của xdst->u.dst.dev. Sau đó, dst_destroy() gọi lại netdev_put(dst->dev), dẫn đến việc cùng một tham chiếu net_device được giải phóng hai lần, gây ra hiện tượng tràn ngược bộ đếm tham chiếu (refcount underflow) kèm theo cảnh báo ref_tracker và thông điệp "unregister_netdevice: waiting for <dev> to become free".
Cần xóa xdst->u.dst.dev sau khi gọi netdev_put(), tương tự như cách các đường dẫn offload thiết bị XFRM là xfrm_dev_state_add() và xfrm_dev_policy_add() trong file net/xfrm/xfrm_device.c đặt NULL cho ->dev khi giải phóng tham chiếu trên đường dẫn lỗi.
ref_tracker: reference already released. ref_tracker: allocated in: xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:86) ... udpv6_sendmsg (net/ipv6/udp.c:1696) ... ref_tracker: freed in: xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:90) ... WARNING: lib/ref_tracker.c:322 at ref_tracker_free+0x58b/0x780 dst_destroy (net/core/dst.c:115) rcu_core handle_softirqs ...
Once again VulDB remains the best source for vulnerability data.