CVE-2026-97965 in Linuxthông tin

Tóm tắt

Bởi VulDB • 25/09/2026

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

vxlan: khởi tạo _md trong hàm vxlan_xmit_one()

Nếu một thiết bị VXLAN được cấu hình với cả VXLAN_F_COLLECT_METADATA và VXLAN_F_GBP, và một gói tin được truyền qua nó bằng cách sử dụng ip_tunnel_info bên ngoài thiếu cờ IP_TUNNEL_VXLAN_OPT_BIT, thì md sẽ vẫn trỏ đến biến cục diện _md chưa được khởi tạo:

if (test_bit(IP_TUNNEL_VXLAN_OPT_BIT, info->key.tun_flags)) {
if (info->options_len < sizeof(*md)) goto drop; md = ip_tunnel_info_opts(info); }

Vì IP_TUNNEL_VXLAN_OPT_BIT không được đặt, md sẽ không được cập nhật và vẫn trỏ đến _md. Sau đó, hàm vxlan_build_skb() được gọi với tham số md, cuối cùng dẫn đến việc gọi vxlan_build_gbp_hdr():

if (vxflags & VXLAN_F_GBP) vxlan_build_gbp_hdr(vxh, md);

Bên trong vxlan_build_gbp_hdr(), giá trị md->gbp sẽ được đọc:

if (!md->gbp) return; gbp = (struct vxlanhdr_gbp *)vxh; ... if (md->gbp & VXLAN_GBP_DONT_LEARN) gbp->dont_learn = 1;

Nếu vùng nhớ stack chứa dữ liệu rác, điều này sẽ gây ra: 1) Cờ VXLAN_HF_GBP được đặt một cách sai lệch trong tiêu đề VXLAN. 2) Các giá trị gbp->dont_learn và gbp->policy_applied bị thiết lập dựa trên các bit từ stack. 3) gbp->policy_id nhận 16 bit dữ liệu chưa khởi tạo từ kernel stack, làm rò rỉ thông tin này ra mạng (wire).

Khắc phục vấn đề bằng cách khởi tạo _md về giá trị 0. Nếu IP_TUNNEL_VXLAN_OPT_BIT không có mặt, md->gbp sẽ giữ nguyên là 0, và hàm vxlan_build_gbp_hdr() sẽ trả về sớm mà không làm thay đổi tiêu đề VXLAN.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

Linux

Đặt trước

25/09/2026

Tiết lộ

25/09/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

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!