CVE-2026-97480 in Linux
Сводка
по VulDB • 24.09.2026
В ядре Linux была устранена следующая уязвимость:
tty: serial: 8250: защита от NULL в uart->port.dev при регистрации
Функция `serial8250_register_8250_port()` условно копирует значение `uart->port.dev` из `up->port.dev` только тогда, когда `up->port.dev` не равно NULL:
```c if (up->port.dev) {
uart->port.dev = up->port.dev; ... } ```
Таким образом, если как существующий слот uart, так и объект up имеют значение поля `dev`, равное NULL, то `uart->port.dev` остается NULL. Затем выполняется проверка ACPI-компаньона (ACPI companion check), которая безоговорочно разыменовывает этот указатель:
```c if (!has_acpi_companion(uart->port.dev)) {
```
Функция `has_acpi_companion()` обращается к полю `dev->fwnode` без проверки на NULL (в файле include/linux/acpi.h), что приводит к разыменованию нулевого указателя в ядре для случая отсутствия устройства, вместо того чтобы проинициализировать mctrl_gpio_init(), как это было задумано.
Инструмент smatch отмечает эту несогласованность:
``` drivers/tty/serial/8250/8250_core.c:767 serial8250_register_8250_port() error: 'uart->port.dev' could be null (see line 719) ```
Необходимо добавить проверку на NULL перед вызовом, чтобы регистрация продолжала работать для callers, у которых действительно отсутствует родительское устройство (устаревшие регистрации без использования OF/ACPI).
Для callers, передающих не-NULL значение `->dev`, функциональных изменений нет.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.