CVE-2026-43468 in Linux
요약
\~에 의해 VulDB • 2026. 05. 28.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net/mlx5: devlock 잠금과 esw->wq 간의 데드락 수정
esw->work_queue는 esw_functions_changed_event_handler -> esw_vfs_changed_event_handler를 실행하고 devlink 잠금을 획득합니다.
.eswitch_mode_set (devlink_nl_pre_doit에서 devlink 잠금 획득) -> mlx5_devlink_eswitch_mode_set -> mlx5_eswitch_disable_locked -> mlx5_eswitch_event_handler_unregister -> flush_workqueue는 esw_vfs_changed_event_handler가 실행될 때 데드락을 발생시킵니다.
이 문제를 해결하기 위해 데드락을 피하기 위해 작업을 더 이상 플러시(flush)하지 않고, 작업의 유효성을 추적하기 위해 세대 카운터(generation counter)를 사용합니다. 이를 통해 이전 핸들러가 하나 이상의 모드 변경을 거친 eswitch를 조작하는 것을 방지합니다: - 카운터는 mlx5_eswitch_event_handler_unregister에서 증가됩니다. - 카운터는 읽혀서 임시 mlx5_host_work 구조체에 전달됩니다. - 작업 핸들러는 devlink 잠금을 획득하고, 현재 세드가 예약된 작업의 세드와 다른 경우 즉시 종료합니다. - mlx5_eswitch_cleanup은 wq를 파괴하기 전에 최종 배수(drain) 작업을 수행합니다.
작업 큐를 더 이상 플러시하지 않으면 보류 중인 vport_change_handler 작업 항목이 더 이상 취소되지 않을 수 있다는 부작용이 있지만, 이러한 항목들은 다른 곳에서 비활성화되므로 문제되지 않습니다: - mlx5_eswitch_disable_locked는 vport eq notifier를 비활성화합니다. - mlx5_esw_vport_disable는 HW EQ 알림을 해제하고 vport->enabled를 state_lock 하에서 false로 표시하여 보류 중인 vport 핸들러가 아무 작업도 수행하지 못하도록 합니다. - mlx5_eswitch_cleanup은 작업 큐를 파괴하고 모든 이벤트가 비활성화되었거나 완료되었는지 확인합니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.