CVE-2026-98532 in Linux
Tóm tắt
Bởi VulDB • 18/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
ipv6: không để ipv6_find_hdr() trả về một offset vượt quá cuối gói tin
Hàm ipv6_find_hdr() duyệt qua chuỗi các header mở rộng, bỏ qua mỗi header bằng độ dài do chính header đó khai báo. Hàm ipv6_optlen() có thể trả về giá trị lên đến 2048, và việc skip (bỏ qua) này không bao giờ được kiểm tra so với skb->len, vì vậy offset được lưu trong *offset có thể trỏ ra ngoài vùng cuối của gói tin.
openvswitch thiết lập offset đó làm transport header, sau đó update_ipv6_checksum() đọc và ghi trường checksum giao vận vượt ra khỏi giới hạn:
BUG: KASAN: slab-use-after-free in inet_proto_csum_replace16+0x445/0x470 Read of size 2 at addr ffff88810b754b06 by task ovs_ipv6_oob/629 CPU: 4 UID: 1000 PID: 629 Comm: ovs_ipv6_oob Tainted: G N 7.3.0-rc3+ #348 Call Trace: inet_proto_csum_replace16+0x445/0x470 set_ipv6_addr+0x3dd/0x460 do_execute_actions+0x6a3d/0x7c40 ovs_execute_actions+0xfd/0x480 ovs_packet_cmd_execute+0xc38/0xf20 genl_rcv_msg+0x59e/0x870 netlink_rcv_skb+0x18b/0x450 genl_rcv+0x2d/0x40 netlink_unicast+0x6bc/0xa20
Địa chỉ lỗi thuộc về đối tượng tại ffff88810b754980, nằm trong cache skbuff_small_head có kích thước 704 byte. Địa chỉ lỗi nằm cách 390 bytes bên trong vùng đã được giải phóng (freed) có kích thước 704 byte [ffff88810b754980, ffff88810b754c40).
Các caller khác cũng sử dụng offset này, vì vậy cần giới hạn nó tại đây thay vì chỉ trong một caller.
Từ chối header có độ dài khai báo không vừa với gói tin. ipv6_find_hdr() đã trả về lỗi -EBADMSG khi gặp chuỗi malformed (lỗi định dạng), do đó điều này không thêm trường hợp thất bại mới nào.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.