Description
In the Linux kernel, the following vulnerability has been resolved:
tty: fix deadlock caused by calling printk() under tty_port->lock
pty_write() invokes kmalloc() which may invoke a normal printk() to print
failure message. This can cause a deadlock in the scenario reported by
syz-bot below:
CPU0 CPU1 CPU2
---- ---- ----
lock(console_owner);
lock(&port_lock_key);
lock(&port->lock);
lock(&port_lock_key);
lock(&port->lock);
lock(console_owner);
As commit dbdda842fe96 ("printk: Add console owner and waiter logic to
load balance console writes") said, such deadlock can be prevented by
using printk_deferred() in kmalloc() (which is invoked in the section
guarded by the port->lock). But there are too many printk() on the
kmalloc() path, and kmalloc() can be called from anywhere, so changing
printk() to printk_deferred() is too complicated and inelegant.
Therefore, this patch chooses to specify __GFP_NOWARN to kmalloc(), so
that printk() will not be called, and this deadlock problem can be
avoided.
Syzbot reported the following lockdep error:
======================================================
WARNING: possible circular locking dependency detected
5.4.143-00237-g08ccc19a-dirty #10 Not tainted
------------------------------------------------------
syz-executor.4/29420 is trying to acquire lock:
ffffffff8aedb2a0 (console_owner){....}-{0:0}, at: console_trylock_spinning kernel/printk/printk.c:1752 [inline]
ffffffff8aedb2a0 (console_owner){....}-{0:0}, at: vprintk_emit+0x2ca/0x470 kernel/printk/printk.c:2023
but task is already holding lock:
ffff8880119c9158 (&port->lock){-.-.}-{2:2}, at: pty_write+0xf4/0x1f0 drivers/tty/pty.c:120
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #2 (&port->lock){-.-.}-{2:2}:
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x35/0x50 kernel/locking/spinlock.c:159
tty_port_tty_get drivers/tty/tty_port.c:288 [inline] <-- lock(&port->lock);
tty_port_default_wakeup+0x1d/0xb0 drivers/tty/tty_port.c:47
serial8250_tx_chars+0x530/0xa80 drivers/tty/serial/8250/8250_port.c:1767
serial8250_handle_irq.part.0+0x31f/0x3d0 drivers/tty/serial/8250/8250_port.c:1854
serial8250_handle_irq drivers/tty/serial/8250/8250_port.c:1827 [inline] <-- lock(&port_lock_key);
serial8250_default_handle_irq+0xb2/0x220 drivers/tty/serial/8250/8250_port.c:1870
serial8250_interrupt+0xfd/0x200 drivers/tty/serial/8250/8250_core.c:126
__handle_irq_event_percpu+0x109/0xa50 kernel/irq/handle.c:156
[...]
-> #1 (&port_lock_key){-.-.}-{2:2}:
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x35/0x50 kernel/locking/spinlock.c:159
serial8250_console_write+0x184/0xa40 drivers/tty/serial/8250/8250_port.c:3198
<-- lock(&port_lock_key);
call_console_drivers kernel/printk/printk.c:1819 [inline]
console_unlock+0x8cb/0xd00 kernel/printk/printk.c:2504
vprintk_emit+0x1b5/0x470 kernel/printk/printk.c:2024 <-- lock(console_owner);
vprintk_func+0x8d/0x250 kernel/printk/printk_safe.c:394
printk+0xba/0xed kernel/printk/printk.c:2084
register_console+0x8b3/0xc10 kernel/printk/printk.c:2829
univ8250_console_init+0x3a/0x46 drivers/tty/serial/8250/8250_core.c:681
console_init+0x49d/0x6d3 kernel/printk/printk.c:2915
start_kernel+0x5e9/0x879 init/main.c:713
secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:241
-> #0 (console_owner){....}-{0:0}:
[...]
lock_acquire+0x127/0x340 kernel/locking/lockdep.c:4734
console_trylock_spinning kernel/printk/printk.c:1773
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 4.9.117 – < 4.9.318, 4.14.60 – < 4.14.283, 3.18.118 – < 3.19, 4.4.146 – < 4.5, 4.17.12 – < 4.18, 4.18 | 4.9.318 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 5.18.5-1 | — |
| Debian 13 | linux | 5.18.5-1 | — |
| Debian 12 | linux | 5.18.5-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 24.04 LTS | linux-raspi-realtime | No fix yet | — |
| Ubuntu 22.04 LTS | linux | 5.15.0-47.51 | — |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1019.23 | — |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1019.24 | — |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1017.23 | — |
| Ubuntu 22.04 LTS | linux-gke | 5.15.0-1015.18 | — |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1002.4 | — |
| Ubuntu 22.04 LTS | linux-ibm | 5.15.0-1013.15 | — |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1015.20 | — |
| Ubuntu 22.04 LTS | linux-kvm | 5.15.0-1017.21 | — |
| Ubuntu 22.04 LTS | linux-lowlatency | 5.15.0-47.53 | — |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1007.7 | — |
| Ubuntu 22.04 LTS | linux-oracle | 5.15.0-1017.22 | — |
| Ubuntu 22.04 LTS | linux-raspi | 5.15.0-1014.16 | — |
| Ubuntu 22.04 LTS | linux-riscv +32 | No fix yet | — |
| Ubuntu 20.04 LTS | linux | 5.4.0-126.142 | — |
| Ubuntu 20.04 LTS | linux-aws | 5.4.0-1085.92 | — |
| Ubuntu 20.04 LTS | linux-aws-5.15 | 5.15.0-1019.23~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-azure | 5.4.0-1091.96 | — |
| Ubuntu 20.04 LTS | linux-azure-5.15 | 5.15.0-1019.24~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-bluefield | 5.4.0-1046.51 | — |
| Ubuntu 20.04 LTS | linux-gcp | 5.4.0-1089.97 | — |
| Ubuntu 20.04 LTS | linux-gcp-5.15 | 5.15.0-1017.23~20.04.2 | — |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-hwe-5.15 +1 | 5.15.0-48.54~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-ibm | 5.4.0-1033.37 | — |
| Ubuntu 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1015.20~20.04.2 | — |
| Ubuntu 20.04 LTS | linux-iot | 5.4.0-1004.6 | — |
| Ubuntu 20.04 LTS | linux-kvm | 5.4.0-1075.80 | — |
| Ubuntu 20.04 LTS | linux-oracle | 5.4.0-1083.91 | — |
| Ubuntu 20.04 LTS | linux-oracle-5.15 | 5.15.0-1017.22~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-raspi | 5.4.0-1070.80 | — |
| Ubuntu 20.04 LTS | linux-riscv-5.15 | 5.15.0-1018.21~20.04.1 | — |
| Ubuntu 18.04 LTS | linux | 4.15.0-192.203 | — |
| Ubuntu 18.04 LTS | linux-aws | 4.15.0-1140.151 | — |
| Ubuntu 18.04 LTS | linux-aws-5.4 | 5.4.0-1085.92~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-azure-4.15 | 4.15.0-1150.165 | — |
| Ubuntu 18.04 LTS | linux-azure-5.4 | 5.4.0-1091.96~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp-4.15 | 4.15.0-1135.151 | — |
| Ubuntu 18.04 LTS | linux-gcp-5.4 | 5.4.0-1089.97~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-hwe-5.4 | 5.4.0-126.142~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-ibm-5.4 | 5.4.0-1033.37~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-kvm | 4.15.0-1126.131 | — |
| Ubuntu 18.04 LTS | linux-oracle | 4.15.0-1105.116 | — |
| Ubuntu 18.04 LTS | linux-oracle-5.4 | 5.4.0-1083.91~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-raspi-5.4 | 5.4.0-1070.80~18.04.1 | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
Show 9 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1020.20 | — |
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-aws-fips | 5.4.0-1085.92+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-azure-fips | 5.4.0-1091.96+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips | 5.4.0-1061.69 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-gcp-fips | 5.4.0-1089.97+fips1 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-aws-fips | 4.15.0-2079.84 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-azure-fips | 4.15.0-2060.66 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips | 4.15.0-1097.108 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-gcp-fips | 4.15.0-2044.49 | — |
| Ubuntu Pro FIPS-updates 16.04 LTS | linux-fips | 4.4.0-1088.95 | — |
| Ubuntu Pro 16.04 LTS | linux | 4.4.0-239.273 | — |
| Ubuntu Pro 16.04 LTS | linux-aws | 4.4.0-1155.170 | — |
| Ubuntu Pro 16.04 LTS | linux-aws-hwe | 4.15.0-1140.151~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-azure | 4.15.0-1150.165~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-gcp | 4.15.0-1135.151~16.04.2 | — |
| Ubuntu Pro 16.04 LTS | linux-hwe | 4.15.0-192.203~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-kvm | 4.4.0-1118.128 | — |
| Ubuntu Pro 16.04 LTS | linux-oracle | 4.15.0-1105.116~16.04.1 | — |
| Ubuntu Pro 14.04 LTS | linux-aws | 4.4.0-1117.123 | — |
| Ubuntu Pro 14.04 LTS | linux-azure | 4.15.0-1150.165~14.04.1 | — |
| Ubuntu Pro 14.04 LTS | linux-lts-xenial | 4.4.0-239.273~14.04.1 | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP5 | kernel-64kb +6 | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLES 15 SP5 | kernel-default-base | 5.14.21-150500.55.100.1.150500.6.47.1 | SUSE-SU-2025:1241-1 |
| SLES 15 SP4 | kernel-64kb +6 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLES 15 SP4 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLES 15 SP3 | kernel-64kb +7 | 5.3.18-150300.59.201.1 | SUSE-SU-2025:1263-1 |
| SLES 15 SP3 | kernel-default-base | 5.3.18-150300.59.201.1.150300.18.120.1 | SUSE-SU-2025:1263-1 |
| SLES 12 SP5 | kernel-syms +2 | 4.12.14-122.261.1 | SUSE-SU-2025:01983-1 |
Show 18 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 15 SP5 | kernel-default-base | 5.14.21-150500.55.100.1.150500.6.47.1 | SUSE-SU-2025:1241-1 |
| SLES for SAP 15 SP5 | kernel-docs +4 | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLES for SAP 15 SP4 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLES for SAP 15 SP4 | kernel-docs +4 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLES for SAP 15 SP3 | kernel-default-base | 5.3.18-150300.59.201.1.150300.18.120.1 | SUSE-SU-2025:1263-1 |
| SLES for SAP 15 SP3 | kernel-docs +5 | 5.3.18-150300.59.201.1 | SUSE-SU-2025:1263-1 |
| SLE Micro 5.5 | kernel-default-base | 5.14.21-150500.55.100.1.150500.6.47.1 | SUSE-SU-2025:1241-1 |
| SLE Micro 5.5 | kernel-rt +1 | 5.14.21-150500.13.91.1 | SUSE-SU-2025:1176-1 |
| SLE Micro 5.5 | kernel-source +1 | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLE Micro 5.4 | kernel-default | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.4 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.4 | kernel-rt +1 | 5.14.21-150400.15.115.1 | SUSE-SU-2025:1183-1 |
| SLE Micro 5.3 | kernel-default | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.3 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.3 | kernel-rt +1 | 5.14.21-150400.15.115.1 | SUSE-SU-2025:1183-1 |
| SLE Micro 5.2 | kernel-default | 5.3.18-150300.59.201.1 | SUSE-SU-2025:1263-1 |
| SLE Micro 5.2 | kernel-default-base | 5.3.18-150300.59.201.1.150300.18.120.1 | SUSE-SU-2025:1263-1 |
| SLE Micro 5.2 | kernel-rt +1 | 5.3.18-150300.205.1 | SUSE-SU-2025:1194-1 |
| SLE Micro 5.1 | kernel-default | 5.3.18-150300.59.201.1 | SUSE-SU-2025:1263-1 |
| SLE Micro 5.1 | kernel-default-base | 5.3.18-150300.59.201.1.150300.18.120.1 | SUSE-SU-2025:1263-1 |
| SLE Micro 5.1 | kernel-rt +1 | 5.3.18-150300.205.1 | SUSE-SU-2025:1194-1 |
| SLE Live Patching 15 SP5 | kernel-default | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLE Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5_Update_25 | 1-150500.11.3.1 | SUSE-SU-2025:1241-1 |
| SLE Live Patching 15 SP4 | kernel-default | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE Live Patching 15 SP4 | kernel-livepatch-SLE15-SP4_Update_38 | 1-150400.9.3.1 | SUSE-SU-2025:1027-1 |
| SLE Live Patching 15 SP3 | kernel-default | 5.3.18-150300.59.201.1 | SUSE-SU-2025:1263-1 |
| SLE Live Patching 15 SP3 | kernel-livepatch-SLE15-SP3_Update_56 | 1-150300.7.3.1 | SUSE-SU-2025:1263-1 |
| SLE Live Patching 12 SP5 | kernel-default | 4.12.14-122.261.1 | SUSE-SU-2025:01983-1 |
| SLE Live Patching 12 SP5 | kgraft-patch-SLE12-SP5_Update_69 | 1-8.3.1 | SUSE-SU-2025:01983-1 |
| SLE HPC 15 SP5 | kernel-64kb +5 | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLE HPC 15 SP5 | kernel-default-base | 5.14.21-150500.55.100.1.150500.6.47.1 | SUSE-SU-2025:1241-1 |
| SLE HPC 15 SP4 | kernel-64kb +5 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE HPC 15 SP4 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLE HPC 15 SP3 | kernel-64kb +6 | 5.3.18-150300.59.201.1 | SUSE-SU-2025:1263-1 |
| SLE HPC 15 SP3 | kernel-default-base | 5.3.18-150300.59.201.1.150300.18.120.1 | SUSE-SU-2025:1263-1 |
| SUSE Manager Server 4.3 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SUSE Manager Server 4.3 | kernel-syms +3 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SUSE Manager Proxy 4.3 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SUSE Manager Proxy 4.3 | kernel-syms +2 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SUSE Enterprise Storage 7.1 | kernel-64kb +6 | 5.3.18-150300.59.201.1 | SUSE-SU-2025:1263-1 |
| SUSE Enterprise Storage 7.1 | kernel-default-base | 5.3.18-150300.59.201.1.150300.18.120.1 | SUSE-SU-2025:1263-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2 | kernel-livepatch-4.14.285-215.501 | 1.0-0.amzn2 | ALAS2-2022-1813 |
| Amazon Linux 2 | perf +8 | 4.14.285-215.501.amzn2 | ALAS2-2022-1813 |
Advisories 8
- SUSE-SU-2025:1194-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:1176-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:1241-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:1027-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:1183-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:01983-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2-2022-1813 Important: kernel security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · Oct 2, 2025
- SUSE-SU-2025:1263-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Apr 16, 2025
References
- https://git.kernel.org/stable/c/4af21b12a60ed2d3642284f4f85b42d7dc6ac246
- https://git.kernel.org/stable/c/4c253caf9264d2aa47ee806a87986dd8eb91a5d9
- https://git.kernel.org/stable/c/04ee31678c128a6cc7bb057ea189a8624ba5a314
- https://git.kernel.org/stable/c/3219ac364ac3d8d30771612a6010f1e0b7fa0a28
- https://git.kernel.org/stable/c/9834b13e8b962caa28fbcf1f422dd82413da4ede
- https://git.kernel.org/stable/c/18ca0d55e8639b911df8aae1b47598b13f9acded
- https://git.kernel.org/stable/c/b3c974501d0c32258ae0e04e5cc3fb92383b40f6
- https://git.kernel.org/stable/c/0bcf44903ef4df742dcada86ccaedd25374ffb50
- https://git.kernel.org/stable/c/6b9dbedbe3499fef862c4dff5217cf91f34e43b3