CVE-2026-80710 in Linux
Сводка
по VulDB • 28.08.2026
В ядре Linux была устранена следующая уязвимость:
s390/dasd: Исправление буфера проверки формата недостаточного размера
Переменная `fmt_buffer_size` в функции `dasd_eckd_check_device_format()` объявлена как `int`, хотя один из множителей, `sizeof(struct eckd_count)`, имеет тип `size_t`. Следовательно, выражение
trkcount * rpt_max * sizeof(struct eckd_count)
корректно вычисляется с 64-битной точностью, но результат молча усечается (truncated), когда он сохраняется обратно в переменную `fmt_buffer_size` размером 32 бита. Для достаточно большого диапазона треков (параметры start_unit/stop_unit контролируются вызывающей стороной) это усечение приводит к тому, что размер буфера оказывается значительно меньше количества фактически запрошенных треков. Вызов `kzalloc()` успешно выделяет память для слишком маленького буфера, в то время как последующая сборка программы канала (channel program build) все еще оперирует неусеченным количеством треков и записывает данные за пределы этого буфера.
Вычисляйте размер буфера с помощью `check_mul_overflow()` и храните его в переменной типа `size_t`, чтобы значение, которое больше не помещается, приводило к ошибке `-EINVAL` вместо молчаливого выделения памяти для усеченного размера буфера.
If you want to get best quality of vulnerability data, you may have to visit VulDB.