CVE-2024-43893CWE-369

CVE-2024-43893

Medium · published August 26, 2024

CVSS v3.1
5.5
EPSS
0%
Percentile
16.4
In the wild
Unconfirmed
What it is

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

serial: core: check uartclk for zero to avoid divide by zero

Calling ioctl TIOCSSERIAL with an invalid baud_base can

result in uartclk being zero, which will result in a

divide by zero error in uart_get_divisor(). The check for

uartclk being zero in uart_set_info() needs to be done

before other settings are made as subsequent calls to

ioctl TIOCSSERIAL for the same port would be impacted if

the uartclk check was done where uartclk gets set.

Oops: divide error: 0000 PREEMPT SMP KASAN PTI

RIP: 0010:uart_get_divisor (drivers/tty/serial/serial_core.c:580)

Call Trace:

<TASK>

serial8250_get_divisor (drivers/tty/serial/8250/8250_port.c:2576

drivers/tty/serial/8250/8250_port.c:2589)

serial8250_do_set_termios (drivers/tty/serial/8250/8250_port.c:502

drivers/tty/serial/8250/8250_port.c:2741)

serial8250_set_termios (drivers/tty/serial/8250/8250_port.c:2862)

uart_change_line_settings (./include/linux/spinlock.h:376

./include/linux/serial_core.h:608 drivers/tty/serial/serial_core.c:222)

uart_port_startup (drivers/tty/serial/serial_core.c:342)

uart_startup (drivers/tty/serial/serial_core.c:368)

uart_set_info (drivers/tty/serial/serial_core.c:1034)

uart_set_info_user (drivers/tty/serial/serial_core.c:1059)

tty_set_serial (drivers/tty/tty_io.c:2637)

tty_ioctl (drivers/tty/tty_io.c:2647 drivers/tty/tty_io.c:2791)

__x64_sys_ioctl (fs/ioctl.c:52 fs/ioctl.c:907

fs/ioctl.c:893 fs/ioctl.c:893)

do_syscall_64 (arch/x86/entry/common.c:52

(discriminator 1) arch/x86/entry/common.c:83 (discriminator 1))

entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130)

Rule: add

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00257 · 16.4th percentile
Weakness
CWE-369 · Divide By Zero
Published
2024-08-26T15:15Z
Affected products (9)
ProductVersionsFixed in
linux/linux_kernel< 4.19.3204.19.320
linux/linux_kernel≥ 4.20, < 5.4.2825.4.282
linux/linux_kernel≥ 5.5, < 5.10.2245.10.224
linux/linux_kernel≥ 5.11, < 5.15.1655.15.165
linux/linux_kernel≥ 5.16, < 6.1.1056.1.105
linux/linux_kernel≥ 6.2, < 6.6.466.6.46
linux/linux_kernel≥ 6.7, < 6.10.56.10.5
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (13)
EPSS history
Timeline
  • 26 AUG 10:10Z
    serial: core: check uartclk for zero to avoid divide by zero
    cvelistv5