In the Linux kernel, the following vulnerability has been resolved:
tty: n_gsm: fix deadlock and link starvation in outgoing data path
The current implementation queues up new control and user packets as needed and processes this queue down to the ldisc in the same code path. That means that the upper and the lower layer are hard coupled in the code. Due to this deadlocks can happen as seen below while transmitting data, especially during ldisc congestion. Furthermore, the data channels starve the control channel on high transmission load on the ldisc.
Introduce an additional control channel data queue to prevent timeouts and link hangups during ldisc congestion. This is being processed before the user channel data queue in gsm_data_kick(), i.e. with the highest priority. Put the queue to ldisc data path into a workqueue and trigger it whenever new data has been put into the transmission queue. Change gsm_dlci_data_sweep() accordingly to fill up the transmission queue until TX_THRESH_HI. This solves the locking issue, keeps latency low and provides good performance on high data load. Note that now all packets from a DLCI are removed from the internal queue if the associated DLCI was closed. This ensures that no data is sent by the introduced write task to an already closed DLCI.
BUG: spinlock recursion on CPU#0, test_v24_loop/124 lock: serial8250_ports+0x3a8/0x7500, .magic: dead4ead, .owner: test_v24_loop/124, .owner_cpu: 0 CPU: 0 PID: 124 Comm: test_v24_loop Tainted: G O 5.18.0-rc2 #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Call Trace: <IRQ> dump_stack_lvl+0x34/0x44 do_raw_spin_lock+0x76/0xa0 _raw_spin_lock_irqsave+0x72/0x80 uart_write_room+0x3b/0xc0 gsm_data_kick+0x14b/0x240 [n_gsm] gsmld_write_wakeup+0x35/0x70 [n_gsm] tty_wakeup+0x53/0x60 tty_port_default_wakeup+0x1b/0x30 serial8250_tx_chars+0x12f/0x220 serial8250_handle_irq.part.0+0xfe/0x150 serial8250_default_handle_irq+0x48/0x80 serial8250_interrupt+0x56/0xa0 __handle_irq_event_percpu+0x78/0x1f0 handle_irq_event+0x34/0x70 handle_fasteoi_irq+0x90/0x1e0 __common_interrupt+0x69/0x100 common_interrupt+0x48/0xc0 asm_common_interrupt+0x1e/0x40 RIP: 0010:__do_softirq+0x83/0x34e Code: 2a 0a ff 0f b7 ed c7 44 24 10 0a 00 00 00 48 c7 c7 51 2a 64 82 e8 2d e2 d5 ff 65 66 c7 05 83 af 1e 7e 00 00 fb b8 ff ff ff ff <49> c7 c2 40 61 80 82 0f bc c5 41 89 c4 41 83 c4 01 0f 84 e6 00 00 RSP: 0018:ffffc90000003f98 EFLAGS: 00000286 RAX: 00000000ffffffff RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffffffff82642a51 RDI: ffffffff825bb5e7 RBP: 0000000000000200 R08: 00000008de3271a8 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000030 R14: 0000000000000000 R15: 0000000000000000 ? __do_softirq+0x73/0x34e irq_exit_rcu+0xb5/0x100 common_interrupt+0xa4/0xc0 </IRQ> <TASK> asm_common_interrupt+0x1e/0x40 RIP: 0010:_raw_spin_unlock_irqrestore+0x2e/0x50 Code: 00 55 48 89 fd 48 83 c7 18 53 48 89 f3 48 8b 74 24 10 e8 85 28 36 ff 48 89 ef e8 cd 58 36 ff 80 e7 02 74 01 fb bf 01 00 00 00 <e8> 3d 97 33 ff 65 8b 05 96 23 2b 7e 85 c0 74 03 5b 5d c3 0f 1f 44 RSP: 0018:ffffc9000020fd08 EFLAGS: 00000202 RAX: 0000000000000000 RBX: 0000000000000246 RCX: 0000000000000000 RDX: 0000000000000004 RSI: ffffffff8257fd74 RDI: 0000000000000001 RBP: ffff8880057de3a0 R08: 00000008de233000 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000100 R14: 0000000000000202 R15: ffff8880057df0b8 ? _raw_spin_unlock_irqrestore+0x23/0x50 gsmtty_write+0x65/0x80 [n_gsm] n_tty_write+0x33f/0x530 ? swake_up_all+0xe0/0xe0 file_tty_write.constprop.0+0x1b1/0x320 ? n_tty_flush_buffer+0xb0/0xb0 new_sync_write+0x10c/0x190 vfs_write+0x282/0x310 ksys_write+0x68/0xe0 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f3e5e35c15c Code: 8b 7c 24 08 89 c5 e8 c5 ff ff ff 89 ef 89 44 24 ---truncated---
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jun 20, 2025 | Jun 20, 2025 |
| Dell Powerstore Dsa2025429 | — | Upgrade Dell PowerStoreOS to the latest version | Dec 3, 2025 | Dec 2, 2025 |
| Dell Powerstore Dsa2026039 | — | Upgrade Dell PowerStoreOS to the latest version | Jan 13, 2026 | Jan 6, 2026 |
| Dell Powerstore Dsa2026115 | — | Upgrade Dell PowerStoreOS to the latest version | Feb 25, 2026 | Feb 24, 2026 |
| Huawei Euleros 2_0_sp11 | — | Upgrade python3-perfUpgrade kernelUpgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-tools-libs | Mar 17, 2026 | Mar 17, 2026 |
| Huawei Euleros 2_0_sp12 | — | Upgrade bpftoolUpgrade kernel-tools-libsUpgrade kernelUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-tools | Mar 17, 2026 | Mar 17, 2026 |
| Huawei Euleros 2_0_sp13 | — | Upgrade bpftoolUpgrade python3-perfUpgrade kernelUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernel-tools | Feb 3, 2026 | Feb 2, 2026 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rtNo solution exists | Jul 9, 2025 | Jun 18, 2025 |
| Ubuntu | — | Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-aws-fipsUpgrade linux-image-azure-lts-22.04Upgrade linux-image-aws-fips-5.15Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-ibm-5.15Upgrade linux-image-generic-5.15Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-gcp-5.15Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-5.15.0-1117-azureUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-azure-fdeUpgrade linux-image-gke-5.15Upgrade linux-image-generic-lpae-5.15Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-fipsUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-raspi-nolpaeUpgrade linux-image-ibmUpgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-generic-64k-5.15Upgrade linux-image-genericUpgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-azure-fde-5.15Upgrade linux-image-5.15.0-1104-kvmUpgrade linux-image-awsUpgrade linux-image-lowlatency-5.15Upgrade linux-image-aws-64k-5.15Upgrade linux-image-nvidiaUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-oem-20.04bUpgrade linux-image-oracleUpgrade linux-image-5.15.0-184-lowlatency-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-virtualUpgrade linux-image-azure-cvmUpgrade linux-image-azure-fips-5.15Upgrade linux-image-azure-5.15Upgrade linux-image-realtimeUpgrade linux-image-gkeUpgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-gkeopUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-intel-iotgUpgrade linux-image-raspiUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-gcp-fipsUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-fips-5.15Upgrade linux-image-azure-fipsUpgrade linux-image-generic-64kUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-186-genericUpgrade linux-image-5.15.0-1112-awsUpgrade linux-image-azureUpgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-5.15.0-186-fipsUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-aws-lts-22.04Upgrade linux-image-virtual-5.15Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-raspi-5.15Upgrade linux-image-oem-20.04cUpgrade linux-image-kvmUpgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1106-raspiUpgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-nvidia-5.15Upgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-kvm-5.15Upgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-5.15.0-1064-nvidia-tegraUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-intelUpgrade linux-image-nvidia-tegra-igx-rtNo solution existsUpgrade linux-image-gkeop-5.15Upgrade linux-image-gcpUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oracle-5.15Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-realtime-5.15Upgrade linux-image-5.15.0-1117-azure-fips | Jun 26, 2025 | Jun 18, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub