В ядре Linux устранена следующая уязвимость:
платформа/x86: hp-bioscfg: исправлена постепенная запись в hp_get_string_from_buffer()
hp_get_string_from_buffer() ограничивает длину преобразованной строки
размер целевого буфера с помощью «size > dst_size», поэтому, когда
преобразованная длина в точности равна dst_size, остается conv_dst_size
в dst_size и безусловном терминаторе NUL записываем
dst[conv_dst_size] = 0;
попадает на один байт за буфер назначения. Это та самая форма
ошибка, как ранее исправленная ошибка на единицу в hp_convert_hexstr_to_str():
размер буфера соответствует содержимому, но терминатор
запись никогда не проверяется на соответствие этому размеру. Исправьте, изменив сравнение на «>=", чтобы conv_dst_size всегда оставался слева.
с местом для терминатора.
Все адресаты фиксированного размера, которые достигают этой функции (путь[512], текущее_значение[512], текущий_пароль/текущее_значение[64] и буферы для каждой записи в кодировках[][512] и предварительных требованиях[][512]) являются повлияло.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: platform/x86: hp-bioscfg: fix off-by-one write in hp_get_string_from_buffer() hp_get_string_from_buffer() clamps the converted string length against the destination buffer size with "size > dst_size", so when the converted length is exactly equal to dst_size, conv_dst_size is left at dst_size and the unconditional NUL terminator write dst[conv_dst_size] = 0; lands one byte past the destination buffer. This is the same shape of bug as the previously fixed off-by-one in hp_convert_hexstr_to_str(): the buffer is sized correctly for the content, but the terminator write is never checked against that size. Fix by changing the comparison to ">=" so conv_dst_size is always left with room for the terminator. All fixed-size destinations that reach this function (path[512], current_value[512], current_password/current_value[64], and the per-entry buffers in encodings[][512] and prerequisites[][512]) are affected.
Характеристики атаки
Последствия
Строка CVSS v3.1