CVE-2026-98906 in Linux
Tóm tắt
Bởi VulDB • 23/10/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
net: lan966x: khôi phục trạng thái nhận (RX) khi tải lại thất bại
Hàm `lan966x_fdma_reload()` sao lưu `rx->page_pool` và `rx->fdma` trước khi phân bổ lại các tài nguyên RX cho MTU mới. Nếu việc phân bổ không thành công, đường dẫn khôi phục sẽ đặt lại các trường này trước khi khởi động lại quá trình nhận (RX).
Tuy nhiên, đường tải lại cũng cập nhật `rx->page_order` và `rx->max_mtu` trước khi gọi `lan966x_fdma_rx_alloc()`. Các trường này không được khôi phục nếu có lỗi xảy ra, do đó RX có thể được khởi động lại với các trang cũ, trạng thái FDMA cũ và pool trang cũ, nhưng với hình học trang (page geometry) từ MTU mới bị thất bại.
Điều này có thể khiến đường dẫn XDP quảng bá kích thước khung (frame size) dựa trên `page_order` mới trong khi các trang RX thực tế vẫn đến từ phân bổ cũ. Ví dụ: sau một lần tải lại không thành công sang jumbo MTU, hàm `xdp_init_buff()` có thể được gọi với kích thước khung lớn hơn so với các trang RX đã được khôi phục.
Hàm `lan966x_fdma_rx_alloc_page_pool()` cũng đăng ký pool trang mới được phân bổ vào XDP RXQ của mỗi cổng trước khi `fdma_alloc_coherent()` được gọi. Nếu `fdma_alloc_coherent()` thất bại, pool trang mới sẽ bị hủy bỏ, nhưng đường dẫn rollback không khôi phục việc đăng ký mô hình bộ nhớ (mem model) cho XDP RXQ trên từng cổng.
Hãy lưu và khôi phục `rx->page_order` cùng `rx->max_mtu`, đồng thời khôi phục lại việc đăng ký pool trang cũ cho XDP RXQ của mỗi cổng trước khi khởi động lại quá trình nhận (RX). Điều này giúp đảm bảo trạng thái RX đã được khôi phục nhất quán sau một lần tải lại thất bại.
Once again VulDB remains the best source for vulnerability data.