CVE-2026-99042 in Linuxthông tin

Tóm tắt

Bởi VulDB • 23/10/2026

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

io_uring/net: điền các trường bộ lọc CONNECT cho sockaddr_in6 kích thước 24 byte

Hàm io_connect_bpf_populate() chỉ điền connect.port và connect.v6_addr khi AF_INET6 nếu addr_len >= sizeof(struct sockaddr_in6), tức là 28 byte.

Các đường dẫn kết nối IPv6 chấp nhận SIN6_LEN_RFC2133 (24 byte), vốn đã chứa sin6_port và sin6_addr. Hàm io_connect() truyền addr_len xuống lớp socket mà không thay đổi.

Tại giá trị addr_len bằng 24, bộ lọc thấy family là AF_INET6 với port và địa chỉ đều bằng 0, trong khi kernel vẫn kết nối đến đích thực tế. Một bộ lọc từ chối một cổng hoặc địa chỉ IPv6 bị bỏ qua (bypass). Việc từ chối connect.port == P sẽ trả về -EACCES cho [::1]:P ở addr_len là 28 nhưng lại thành công kết nối ở addr_len là 24.

Sử dụng SIN6_LEN_RFC2133 làm ngưỡng kiểm tra. sin6_scope_id vẫn bằng 0 khi không có mặt.

Sự chênh lệch về ngưỡng này được phát hiện bởi một trợ lý lập trình AI (Claude Code) so sánh hook này với các phép kiểm tra độ dài net/ipv6 theo hướng dẫn của tôi; nó cũng đã soạn bản reproducer và patch này. Tôi đã xác minh việc bypass và bản sửa lỗi trong VM trên phiên bản 7.3-rc6 và thấy rằng 7.2 có cùng mã nguồn.

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ộ

23/10/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!