В ядре Linux устранена следующая уязвимость:
мощность: питание: qcom_battmgr: завершить строки из прошивки
Функция qcom_battmgr_sc8280xp_strcpy() принимает строку в стиле Паскаля, когда
прошивка отправляет один. В противном случае он копирует все байты BATTMGR_STRING_LEN и
покидает пункт назначения без терминатора. Этими пунктами назначения являются model_number, серийный_номер и oem_info, каждый из которых
BATTMGR_STRING_LEN и объявлены рядом друг с другом.
Они выходят к пользователю
пространство как val->strval, которое power_supply_format_property() печатает с помощью
«%s», поэтому строка прошивки, заполняющая все поле, позволяет выполнить чтение.
в следующие члены. Используйте strscpy(), чтобы копирование всегда завершалось, как путь SM8350.
уже делает для того же поля.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: power: supply: qcom_battmgr: terminate the strings from firmware The qcom_battmgr_sc8280xp_strcpy() takes a Pascal-style string when the firmware sends one. Otherwise it copies all BATTMGR_STRING_LEN bytes and leaves the destination without a terminator. Those destinations are model_number, serial_number and oem_info, each BATTMGR_STRING_LEN and declared next to each other. They go out to user space as val->strval, which power_supply_format_property() prints with "%s", so a firmware string that fills the whole field makes that read run into the following members. Use strscpy() so the copy always terminates, the way the SM8350 path already does for the same field.
Характеристики атаки
Последствия
Строка CVSS v3.1