lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025090552-CVE-2025-39724-7097@gregkh>
Date: Fri,  5 Sep 2025 19:21:37 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2025-39724: serial: 8250: fix panic due to PSLVERR

From: Greg Kroah-Hartman <gregkh@...nel.org>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

serial: 8250: fix panic due to PSLVERR

When the PSLVERR_RESP_EN parameter is set to 1, the device generates
an error response if an attempt is made to read an empty RBR (Receive
Buffer Register) while the FIFO is enabled.

In serial8250_do_startup(), calling serial_port_out(port, UART_LCR,
UART_LCR_WLEN8) triggers dw8250_check_lcr(), which invokes
dw8250_force_idle() and serial8250_clear_and_reinit_fifos(). The latter
function enables the FIFO via serial_out(p, UART_FCR, p->fcr).
Execution proceeds to the serial_port_in(port, UART_RX).
This satisfies the PSLVERR trigger condition.

When another CPU (e.g., using printk()) is accessing the UART (UART
is busy), the current CPU fails the check (value & ~UART_LCR_SPAR) ==
(lcr & ~UART_LCR_SPAR) in dw8250_check_lcr(), causing it to enter
dw8250_force_idle().

Put serial_port_out(port, UART_LCR, UART_LCR_WLEN8) under the port->lock
to fix this issue.

Panic backtrace:
[    0.442336] Oops - unknown exception [#1]
[    0.442343] epc : dw8250_serial_in32+0x1e/0x4a
[    0.442351]  ra : serial8250_do_startup+0x2c8/0x88e
...
[    0.442416] console_on_rootfs+0x26/0x70

The Linux kernel CVE team has assigned CVE-2025-39724 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 3.13 with commit c49436b657d0a56a6ad90d14a7c3041add7cf64d and fixed in 5.4.297 with commit 0b882f00655afefbc7729c6b5aec86f7a5473a3d
	Issue introduced in 3.13 with commit c49436b657d0a56a6ad90d14a7c3041add7cf64d and fixed in 5.10.241 with commit b8ca8e3f75ede308b4d49a6ca5081460be01bdb5
	Issue introduced in 3.13 with commit c49436b657d0a56a6ad90d14a7c3041add7cf64d and fixed in 5.15.190 with commit 68c4613e89f000e8198f9ace643082c697921c9f
	Issue introduced in 3.13 with commit c49436b657d0a56a6ad90d14a7c3041add7cf64d and fixed in 6.1.149 with commit c826943abf473a3f7260fbadfad65e44db475460
	Issue introduced in 3.13 with commit c49436b657d0a56a6ad90d14a7c3041add7cf64d and fixed in 6.6.103 with commit cb7b3633ed749db8e56f475f43c960652cbd6882
	Issue introduced in 3.13 with commit c49436b657d0a56a6ad90d14a7c3041add7cf64d and fixed in 6.12.44 with commit 8e2739478c164147d0774802008528d9e03fb802
	Issue introduced in 3.13 with commit c49436b657d0a56a6ad90d14a7c3041add7cf64d and fixed in 6.16.4 with commit 38c0ea484dedb58cb3a4391229933e16be0d1031
	Issue introduced in 3.13 with commit c49436b657d0a56a6ad90d14a7c3041add7cf64d and fixed in 6.17-rc1 with commit 7f8fdd4dbffc05982b96caf586f77a014b2a9353
	Issue introduced in 3.10.48 with commit 6d5e79331417886196cb3a733bdb6645ba85bc42
	Issue introduced in 3.12.24 with commit 2401577586898b3590db80f8b97a26f81f0f6d4e

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2025-39724
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	drivers/tty/serial/8250/8250_port.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/0b882f00655afefbc7729c6b5aec86f7a5473a3d
	https://git.kernel.org/stable/c/b8ca8e3f75ede308b4d49a6ca5081460be01bdb5
	https://git.kernel.org/stable/c/68c4613e89f000e8198f9ace643082c697921c9f
	https://git.kernel.org/stable/c/c826943abf473a3f7260fbadfad65e44db475460
	https://git.kernel.org/stable/c/cb7b3633ed749db8e56f475f43c960652cbd6882
	https://git.kernel.org/stable/c/8e2739478c164147d0774802008528d9e03fb802
	https://git.kernel.org/stable/c/38c0ea484dedb58cb3a4391229933e16be0d1031
	https://git.kernel.org/stable/c/7f8fdd4dbffc05982b96caf586f77a014b2a9353

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ