Description
In the Linux kernel, the following vulnerability has been resolved: netconsole: take target_cleanup_list_lock in drop_netconsole_target() drop_netconsole_target() unlinks the target while only holding target_list_lock. However, when the underlying interface has been unregistered, netconsole_netdev_event() moves the target from target_list to target_cleanup_list, and netconsole_process_cleanups_core() walks that list under target_cleanup_list_lock only. If a user removes the configfs target at the same time the cleanup worker is iterating target_cleanup_list, list_del() can corrupt the list because the two paths take disjoint locks while operating on the same list node. Acquire target_cleanup_list_lock around the list_del() so the unlink is serialised against netconsole_process_cleanups_core() regardless of which list the target currently belongs to. The state transition that downgrades STATE_DEACTIVATED to STATE_DISABLED is left intact and is performed under the same combined locking, preserving the existing ordering with resume_target().
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
97714695ef904a4bdba75ca2f339215c0ae2b1fa to < 84592ee22f7d1583ce33aa733411ff36c7a1c44caffected97714695ef904a4bdba75ca2f339215c0ae2b1fa to < fe8e6c0a2f28bdab14cdf7eff4dd9755d3793007affected97714695ef904a4bdba75ca2f339215c0ae2b1fa to < 91aeb87f052367a5a2743cc93777dfb4386f2f14affected
Linux Linux
Default version status: affected
6.12affected0 to < 6.12unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2 to ≤ *unaffected