In the Linux kernel, the following vulnerability has been resolved:
serial: 8250: fix panic due to PSLVERR
When the PSLVERRRESPEN 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 serial8250dostartup(), calling serialportout(port, UARTLCR, UARTLCRWLEN8) triggers dw8250checklcr(), which invokes dw8250forceidle() and serial8250clearandreinitfifos(). The latter function enables the FIFO via serialout(p, UARTFCR, p->fcr). Execution proceeds to the serialportin(port, UARTRX). 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 & ~UARTLCRSPAR) == (lcr & ~UARTLCRSPAR) in dw8250checklcr(), causing it to enter dw8250forceidle().
Put serialportout(port, UARTLCR, UARTLCR_WLEN8) under the port->lock to fix this issue.
Panic backtrace: [ 0.442336] Oops - unknown exception [#1] [ 0.442343] epc : dw8250serialin32+0x1e/0x4a [ 0.442351] ra : serial8250dostartup+0x2c8/0x88e ... [ 0.442416] consoleonrootfs+0x26/0x70
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "335452506443473646110724300231286658916",
"length": 211.0
},
"target": {
"function": "serial8250_initialize",
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-0c9329c4",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7f8fdd4dbffc05982b96caf586f77a014b2a9353",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "83412299795594389186963272949393152026",
"length": 5066.0
},
"target": {
"function": "serial8250_do_startup",
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-17e8e14d",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@38c0ea484dedb58cb3a4391229933e16be0d1031",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "172628996974424813420930456032492322957",
"length": 5268.0
},
"target": {
"function": "serial8250_do_startup",
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-2412cfc0",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cb7b3633ed749db8e56f475f43c960652cbd6882",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"222367378856560515633853516141996906324",
"206603387152603363260771396789015309052",
"252006823137608508553428767785267914014",
"40222463901278576167352491896858642057",
"138528287717487237528324202445633347908"
]
},
"target": {
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-4b94c9c5",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cb7b3633ed749db8e56f475f43c960652cbd6882",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"222367378856560515633853516141996906324",
"206603387152603363260771396789015309052",
"252006823137608508553428767785267914014",
"40222463901278576167352491896858642057",
"138528287717487237528324202445633347908"
]
},
"target": {
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-556752ec",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@68c4613e89f000e8198f9ace643082c697921c9f",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"188967802230294728037102649821934061238",
"93278036156861576619515259857180394032",
"149910347547511713750375245003888514034",
"40222463901278576167352491896858642057",
"138528287717487237528324202445633347908"
]
},
"target": {
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-665b0e48",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0b882f00655afefbc7729c6b5aec86f7a5473a3d",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "137183121266683138930867397111841430663",
"length": 5114.0
},
"target": {
"function": "serial8250_do_startup",
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-6d04bb8a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@68c4613e89f000e8198f9ace643082c697921c9f",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"222367378856560515633853516141996906324",
"295513037668475304441946949262258206385",
"35019435508728288327595780477656975300",
"240113017557308162060377954533140938112",
"164269746580922379625705674173387556140"
]
},
"target": {
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-710be26e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@38c0ea484dedb58cb3a4391229933e16be0d1031",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "89444787394271768124654072396782474449",
"length": 5120.0
},
"target": {
"function": "serial8250_do_startup",
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-7ceb5f76",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c826943abf473a3f7260fbadfad65e44db475460",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"222367378856560515633853516141996906324",
"206603387152603363260771396789015309052",
"252006823137608508553428767785267914014",
"40222463901278576167352491896858642057",
"138528287717487237528324202445633347908"
]
},
"target": {
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-9d854dbc",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b8ca8e3f75ede308b4d49a6ca5081460be01bdb5",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "137183121266683138930867397111841430663",
"length": 5114.0
},
"target": {
"function": "serial8250_do_startup",
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-b5dbefe1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b8ca8e3f75ede308b4d49a6ca5081460be01bdb5",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "318660985222005088414359902750473698497",
"length": 5111.0
},
"target": {
"function": "serial8250_do_startup",
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-e6ce648f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0b882f00655afefbc7729c6b5aec86f7a5473a3d",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"222367378856560515633853516141996906324",
"206603387152603363260771396789015309052",
"252006823137608508553428767785267914014",
"40222463901278576167352491896858642057",
"138528287717487237528324202445633347908"
]
},
"target": {
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-f48fe25d",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c826943abf473a3f7260fbadfad65e44db475460",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"255227828765071638603443251759738044677",
"132336761159670245661599718525198442809",
"326880542103655714773943556765434405616",
"160683891527903840827385482982452529771",
"294514594891098170839066832406430202734"
]
},
"target": {
"file": "drivers/tty/serial/8250/8250_port.c"
},
"id": "CVE-2025-39724-f78030d4",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7f8fdd4dbffc05982b96caf586f77a014b2a9353",
"signature_type": "Line"
}
]