V
Сканер-ВС
ГлавнаяКаталогИсточникиCWECAPECATT&CKМеры защитыПродуктыВендорыДокументация
CVE-2025-22003
CVE
Средний

В ядре Linux была решена следующая уязвимость: can: ucan: исправление чтения вне границы в strscpy() источнике. Коммит 7fdaf8966aae ("can: …

CVSS
5.5
Средний
EPSS
0.00
p5
Опубликовано
2025-01-01
Обновлено
2025-01-01
Описание

В ядре Linux была решена следующая уязвимость: can: ucan: исправление чтения вне границы в strscpy() источнике. Коммит 7fdaf8966aae ("can: ucan: использовать strscpy() вместо strncpy()") непреднамеренно ввел одно байтовое чтение вне границы аргумента source strscpy() (что несколько иронично, учитывая, что strscpy() предназначен быть более безопасной альтернативой :)). Рассмотрим следующие буферы: dest[len + 1]; /* завершится нулевым символом */ src[len]; /* может не завершиться нулевым символом */ При выполнении: strncpy(dest, src, len); dest[len] = '\0'; strncpy() будет читать до len байтов из src. С другой стороны: strscpy(dest, src, len + 1); приведет к чтению до len + 1 байтов из src, то есть произойдет чтение вне границ на один байт из src, если он не завершен нулевым символом. Обратите внимание, что байт src[len] никогда не копируется, но strscpy() все еще необходим для проверки произошла ли усеченность или нет. Это точный случай произошел в ucan. Коренная причина заключается в том, что источник не завершен нулевым символом. Вместо то чтобы делать копию в локальном буфере, немедленно завершите нулевым символом, как только usb_control_msg() возвращает. С этим локальная переменная firmware_str[] может быть убрана. Сверх этого выполните несколько рефакторингов: - ucan_ctl_payload->raw используется только для строки прошивки, поэтому переименуйте его в ucan_ctl_payload->fw_str и измените его тип с u8 на char. - ucan_device_request_in() используется только для получения строки прошивки, поэтому переименуйте его в ucan_get_fw_str() и рефакторинг, чтобы он непосредственно обрабатывал всю логику завершения строки.

Теги · CWE
CWE-125
CAPEC-540
Затронутые продукты
LinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinux-5.10Linux-5.10Linux-allwinner-5.19Linux-awsLinux-awsLinux-awsLinux-awsLinux-aws
Вектор CVSS
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Хронология
2025-01-01
Опубликована
2025-01-01
Обновлена
Разбор CVSS 3.1
Вектор атаки
AV: L
Локальная (L)
Сложность атаки
AC: L
Низкая (L)
Требуемые привилегии
PR: L
Низкие (L)
Взаимодействие с пользователем
UI: N
Отсутствует (N)
Область воздействия
S: U
Неизменная (U)
Воздействие на конфиденциальность
C: N
Отсутствует (N)
Воздействие на целостность
I: N
Отсутствует (N)
Воздействие на доступность
A: H
Высокое (H)
Индикаторы эксплуатации
EPSS
0.002 · p5
Известна эксплуатация (KEV)
Нет
Проверки Сканер-ВС
Проверок Сканер-ВС для этой уязвимости в базе пока нет.
Затронутые продукты
ПродуктВендорСтатус
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linux-5.10Отслеживается
linux-5.10Отслеживается
linux-allwinner-5.19Отслеживается
linux-awsОтслеживается
linux-awsОтслеживается
linux-awsОтслеживается
linux-awsОтслеживается
linux-awsОтслеживается
Показаны первые 20 из 279
Источники данных
ALT
AST
DEB
CVE
UBU
Связанные уязвимости