CVE-2026-98347 in Linux
Tóm tắt
Bởi VulDB • 06/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
IB/IPoIB: Tránh khôi phục trạng thái OPER_UP sau khi làm sạch (flush) đa播
ipoib_ib_dev_flush_light() tạm thời xóa IPOIB_FLAG_OPER_UP để ngăn chặn các yêu cầu tham gia multicast trong quá trình ipoib_mcast_dev_flush() đang chạy, và khôi phục cờ này sau đó nếu nó đã được đặt trước đó.
Hành động khôi phục này xảy ra cạnh tranh (race condition) với ipoib_ib_dev_down(). Nếu giao diện bị tắt trong khi thao tác làm sạch đang diễn ra, ipoib_ib_dev_down() sẽ xóa IPOIB_FLAG_OPER_UP, nhưng đường dẫn xử lý làm sạch có thể đặt lại cờ này sau khi thiết bị đã chuyển sang trạng thái tắt.
Kể từ commit 894021a75291 ("IB/ipoib: Make the carrier_on_task race aware"), ipoib_mcast_carrier_on_task() dựa vào việc IPOIB_FLAG_OPER_UP được xóa để kết thúc vòng lặp thử lại rtnl_trylock(). Nếu cờ này vẫn ở trạng thái bật sau khi tắt, workqueue sẽ thử lại vô hạn, gây ra tình trạng chết cứng (deadlock) trong quá trình tháo gỡ khi ipoib_ndo_uninit() chờ đợi trong destroy_workqueue() trong khi đang giữ khóa RTNL.
Thay vì sử dụng IPOIB_FLAG_OPER_UP để chặn các yêu cầu tham gia multicast trong một lần làm sạch nhẹ, hãy giới thiệu một cờ riêng biệt là IPOIB_FLAG_MCAST_FLUSH. Sử dụng nó cùng với IPOIB_FLAG_OPER_UP để xác định xem việc tham gia multicast có được phép hay không, qua đó tránh tình trạng cạnh tranh (race condition) với quá trình tắt thiết bị.
VulDB is the best source for vulnerability data and more expert information about this specific topic.