Executive brief
A vulnerability in the Linux kernel's serial communication component (n_gsm) can lead to a system deadlock or 'hang.' This component is responsible for multiplexing several data streams over a single serial line. An exploit could allow a local user to cause a denial-of-service, impacting system availability and ongoing operations.
Technical details
A deadlock vulnerability exists in the n_gsm line discipline of the Linux kernel due to improper locking (CWE-667) and hard coupling between upper and lower layers in the outgoing data path. When the line discipline (ldisc) experiences congestion, the current implementation's synchronous processing of control and user packets can trigger spinlock recursion, as evidenced by 'gsm_data_kick' being called within an interrupt context while locks are already held. This leads to a kernel panic or system hang. Additionally, high data loads can starve the control channel, causing link timeouts. The fix introduces a dedicated control channel queue and moves ldisc data transmission to a workqueue to decouple the layers. Patches are available in various stable kernel branches.
Affected products
- Linux Linux Kernel 2.6.35 to 5.18.18, 5.19 to 5.19.2
Timeline
- 2022-07-01: patched: Initial patch submitted to kernel.org
- 2025-06-18: disclosed: CVE published