Executive brief
A vulnerability in the Linux kernel's NET/ROM protocol implementation could allow a local user to cause a system deadlock. NET/ROM is a protocol used primarily in amateur radio networking. An exploit could lead to a complete system hang or denial of service, impacting the availability of the affected machine.
Technical details
A deadlock vulnerability exists in the Linux kernel's NET/ROM routing implementation within the nr_rt_ioctl() function. The issue stems from an inconsistent locking order between nr_node_list_lock and nr_node->node_lock. Specifically, the kernel could attempt to acquire these locks in different orders across different code paths, leading to a circular dependency. A local attacker with sufficient privileges to interact with network ioctls could trigger this condition, resulting in a kernel hang (Denial of Service). The fix ensures that nr_node_list_lock is always acquired before nr_node_lock.
Affected products
- Linux Linux Kernel 2.6.12 to 6.9.0-rc7
Timeline
- 2024-05-15: disclosed: Vulnerability reported by syzbot and patch submitted by Eric Dumazet.
- 2024-06-19: advisory: CVE-2024-38589 published.
References
- https://git.kernel.org/stable/c/1fbfb483c1a290dce3f41f52d45cc46dd88b7691
- https://git.kernel.org/stable/c/3db2fc45d1d2a6457f06ebdfd45b9820e5b5c2b7
- https://git.kernel.org/stable/c/421c50fa81836775bf0fd6ce0e57a6eb27af24d5
- https://git.kernel.org/stable/c/5bc50a705cfac8f64ce51c95611c3dd0554ef9c3
- https://git.kernel.org/stable/c/5fb7e2a4335fc67d6952ad2a6613c46e0b05f7c5
- https://git.kernel.org/stable/c/b117e5b4f27c2c9076561b6be450a9619f0b79de
- https://git.kernel.org/stable/c/b9d663fbf74290cb68fbc66ae4367bd56837ad1d