CVEvulnerability

CVE-2022-49304

5.5 MEDIUM Published 2025-02-26 Modified 2026-06-17 Official page ↗
Status
Modified
Published
2025-02-26
Last modified
2026-06-17
Assigner
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS 3.1 ([email protected])
5.5 MEDIUM — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS 3.1 (134c704f-9b21-4f2e-91b3-4a467353bcc0)
5.5 MEDIUM — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-667

Description

In the Linux kernel, the following vulnerability has been resolved: drivers: tty: serial: Fix deadlock in sa1100_set_termios() There is a deadlock in sa1100_set_termios(), which is shown below: (Thread 1) | (Thread 2) | sa1100_enable_ms() sa1100_set_termios() | mod_timer() spin_lock_irqsave() //(1) | (wait a time) ... | sa1100_timeout() del_timer_sync() | spin_lock_irqsave() //(2) (wait timer to stop) | ... We hold sport->port.lock in position (1) of thread 1 and use del_timer_sync() to wait timer to stop, but timer handler also need sport->port.lock in position (2) of thread 2. As a result, sa1100_set_termios() will block forever. This patch moves del_timer_sync() before spin_lock_irqsave() in order to prevent the deadlock.

Affected configurations

• linux linux kernel (< 4.9.318) • linux linux kernel (>= 4.10 < 4.14.283) • linux linux kernel (>= 4.15 < 4.19.247) • linux linux kernel (>= 4.20 < 5.4.198) • linux linux kernel (>= 5.5 < 5.10.122) • linux linux kernel (>= 5.11 < 5.15.47) • linux linux kernel (>= 5.16 < 5.17.15) • linux linux kernel (>= 5.18 < 5.18.4)

Related

Weakness · CWE (1)

  • CWE-667 Improper Locking weakness

References