CVE-2026-80739 in Linux
Tóm tắt
Bởi VulDB • 03/09/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
net/mlx5e: TC, kiểm tra xem flow có phải là PEER hay không trước khi lấy khóa devcom của thiết bị (ESW)
Trường hợp __mlx5e_add_fdb_flow() thất bại ở các tầng thấp hơn, flow sẽ bị xóa thông qua mlx5e_tc_del_flow(), và hàm mlx5e_tc_del_flow() đang thực hiện việc lấy khóa ESW devcom mà không có điều kiện. Ngoài ra, trong trường hợp peer_flow, __mlx5e_add_fdb_flow() được gọi khi đã giữ khóa comp của ESW devcom. Điều này dẫn đến một tình trạng deadlock AA (Acquire-And-Wait).
Để khắc phục vấn đề này, hãy giới thiệu một cờ PEER mới được đặt trên các flow được tạo dưới dạng peer flows (các flow trùng lặp trên các thiết bị peer), và kiểm tra cờ này trong mlx5e_tc_del_flow() trước khi lấy khóa ESW devcom.
Dấu vết Lockdep: ============================================ CẢNH BÁO: phát hiện việc khóa đệ quy không an toàn có thể xảy ra ============================================ Kịch bản khóa không an toàn có thể: CPU0 ---- lock(&comp->lock_key#2); lock(&comp->lock_key#2); *** DEADLOCK *** Dấu vết cuộc gọi (Call Trace):
dump_stack_lvl+0x69/0xa0 print_deadlock_bug.cold+0xbd/0xca __lock_acquire+0x1671/0x2ec0 lock_acquire+0x10e/0x2e0 down_read+0x95/0x430 mlx5_devcom_for_each_peer_begin+0x4e/0xe0 [mlx5_core]
mlx5e_tc_del_flow+0x11d/0xa70 [mlx5_core]
mlx5e_flow_put+0x99/0x100 [mlx5_core]
__mlx5e_add_fdb_flow+0x409/0xf00 [mlx5_core]
mlx5e_configure_flower+0x2a86/0x4100 [mlx5_core]
mlx5e_rep_setup_tc_cls_flower+0x12f/0x1b0 [mlx5_core]
mlx5e_rep_setup_tc_cb+0x153/0x750 [mlx5_core]
tc_setup_cb_add+0x1dc/0x470 fl_change+0x2f4d/0x626d [cls_flower]
tc_new_tfilter+0x79b/0x2310 rtnetlink_rcv_msg+0x778/0xad0 do_syscall_64+0x70/0x960 entry_SYSCALL_64_after_hwframe+0x4b/0x53
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.