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.
Metrics
No CVSS score has been published yet.
Affected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= df03f830d099f0811281a222aefdd9d400fa0b72, < 932c0c7a7ec413399febca5fe3dddf913bb5c924; >= df03f830d099f0811281a222aefdd9d400fa0b72, < ff70aa7e8cf05745fdba7258952a8bedf33ea336; >= df03f830d099f0811281a222aefdd9d400fa0b72, < d7d2fcf7ae31471b4e08b7e448b8fd0ec2e06a1b |
| Linux | Linux | 6.9 |
References
Timeline
- Published
- Dec 16, 2025
- Last modified
- Oct 21, 2026
- NVD status
- Deferred