Description
In the Linux kernel, the following vulnerability has been resolved: netconsole: Acquire su_mutex before navigating configs hierarchy There is a race between operations that iterate over the userdata cg_children list and concurrent add/remove of userdata items through configfs. The update_userdata() function iterates over the nt->userdata_group.cg_children list, and count_extradata_entries() also iterates over this same list to count nodes. Quoting from Documentation/filesystems/configfs.rst: > A subsystem can navigate the cg_children list and the ci_parent pointer > to see the tree created by the subsystem. This can race with configfs' > management of the hierarchy, so configfs uses the subsystem mutex to > protect modifications. Whenever a subsystem wants to navigate the > hierarchy, it must do so under the protection of the subsystem > mutex. Without proper locking, if a userdata item is added or removed concurrently while these functions are iterating, the list can be accessed in an inconsistent state. For example, the list_for_each() loop can reach a node that is being removed from the list by list_del_init() which sets the nodes' .next pointer to point to itself, so the loop will never end (or reach the WARN_ON_ONCE in update_userdata() ). Fix this by holding the configfs subsystem mutex (su_mutex) during all operations that iterate over cg_children. This includes: - userdatum_value_store() which calls update_userdata() to iterate over cg_children - All sysdata_*_enabled_store() functions which call count_extradata_entries() to iterate over cg_children The su_mutex must be acquired before dynamic_netconsole_mutex to avoid potential lock ordering issues, as configfs operations may already hold su_mutex when calling into our code.
Product status
df03f830d099f0811281a222aefdd9d400fa0b72 (git) before ff70aa7e8cf05745fdba7258952a8bedf33ea336
df03f830d099f0811281a222aefdd9d400fa0b72 (git) before d7d2fcf7ae31471b4e08b7e448b8fd0ec2e06a1b
6.9
Any version before 6.9
6.17.8 (semver)
6.18 (original_commit_for_fix)
References
git.kernel.org/...c/ff70aa7e8cf05745fdba7258952a8bedf33ea336
git.kernel.org/...c/d7d2fcf7ae31471b4e08b7e448b8fd0ec2e06a1b
Data based on CVE®. Copyright © 1999-2025, The MITRE Corporation. All rights reserved.