CVE-2026-45907 in Linux
Tóm tắt
Bởi VulDB • 31/05/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
net/mlx5e: Sửa lỗi deadlock giữa các khóa của phiên bản devlink và netdev
Trong commit "Fixes" được đề cập, các tác vụ công việc khác nhau kích hoạt quá trình khôi phục của trình báo cáo sức khỏe devlink đã được chuyển sang sử dụng netdev_trylock để bảo vệ chống lại việc tháo dỡ đồng thời các kênh đang được khôi phục. Tuy nhiên, điều này có tác dụng phụ là gây ra các lỗi deadlock tiềm ẩn do thứ tự khóa không chính xác.
Thứ tự khóa đúng được mô tả bởi luồng khởi tạo: probe_one -> mlx5_init_one (lấy khóa devlink) -> mlx5_init_one_devl_locked -> mlx5_register_device -> mlx5_rescan_drivers_locked -...-> mlx5e_probe -> _mlx5e_probe -> register_netdev (lấy khóa rtnl) -> register_netdevice (lấy khóa netdev) => khóa devlink -> khóa rtnl -> khóa netdev.
Tuy nhiên, trong luồng khôi phục hiện tại, thứ tự bị sai: mlx5e_tx_err_cqe_work (lấy khóa netdev) -> mlx5e_reporter_tx_err_cqe -> mlx5e_health_report -> devlink_health_report (lấy khóa devlink => sự cố!) -> devlink_health_reporter_recover -> mlx5e_tx_reporter_recover -> mlx5e_tx_reporter_recover_from_ctx -> mlx5e_tx_reporter_err_cqe_recover
Mẫu tương tự tồn tại trong: mlx5e_reporter_rx_timeout mlx5e_reporter_tx_ptpsq_unhealthy mlx5e_reporter_tx_timeout
Khắc phục các lỗi này bằng cách di chuyển các lệnh gọi netdev_trylock từ các trình xử lý công việc xuống thấp hơn trong ngăn xếp gọi, trong các hàm khôi phục tương ứng, nơi chúng thực sự cần thiết.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.