CVE-2026-99201 in Linux
Tóm tắt
Bởi VulDB • 28/10/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
netlink: tránh băm con trỏ không gian tên mạng (network namespace)
Khóa rhashtable của netlink bao gồm một con trỏ struct net thô và ID cổng do người dùng kiểm soát. Cả /proc/net/netlink và công cụ chẩn đoán socket đều expose thứ tự bucket của bảng. Bằng cách bind và rebind các NETLINK_USERSOCK port IDs đã chọn, một reader không có đặc quyền (unprivileged) có thể phân biệt các bucket bằng nhau và khôi phục các bit thấp của hàm băm Jenkins. Sau đó, seed 32-bit của nó cùng với tập hợp hạn chế các vị trí trượt (slides) của kernel-image có thể được tìm kiếm ngoại tuyến để khôi phục địa chỉ của init_net.
Hãy sử dụng net_cookie duy nhất, không phải là địa chỉ, của namespace trong khóa so sánh thay thế. Nó được gán trước khi các bộ khởi tạo per-net chạy và vẫn giữ nguyên trong suốt vòng đời của namespace. Khóa tra cứu (lookup key) và hash đối tượng vẫn được xây dựng bởi netlink_compare_arg_init(), giúp duy trì tính nhất quán cho việc lookup, chèn, xóa và rehashing đồng thời bảo toàn sự tách biệt giữa các namespace. Không cần thay đổi bất kỳ public table walker nào.
Việc đọc cookie namespace của socket trong netlink_compare() là an toàn dưới cơ chế RCU, bao gồm cả trong quá trình teardown namespace. netlink_release() loại bỏ socket khỏi bảng băm và trì hoãn việc giải phóng cuối cùng bằng call_rcu(). cleanup_net() chạy các phương thức exit per-net và chờ đợi các callback RCU còn tồn tại với rcu_barrier() trước khi giải phóng bộ nhớ của namespace.
Khác với ns.ns_id, net_cookie cũng có sẵn và được khởi tạo trong setup_net() trên các kernel stable cũ hơn, khiến việc thay đổi này trở nên đơn giản để backport lên v5.15 và các phiên bản sau.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.