CVE-2026-93048 in LinuxИнформация

Сводка

по VulDB • 18.09.2026

В ядре Linux была устранена следующая уязвимость:

mtd: part: отклонять значение MTDPART_OFS_RETAIN в функции mtd_add_partition()

Функция mtd_add_partition() не отклоняет специальное смещение MTDPART_OFS_RETAIN (-3), что приводит к срабатыванию WARN_ON в add_mtd_device() при вызове через ioctl BLKPG для устройств NAND. Значение RETAIN зависит от того, чтобы cur_offset соответствовал концу предыдущего раздела, но в динамическом пути создания разделов cur_offset равен самому аргументу смещения (offset), что вызывает неопределенное поведение.

Коммит 5daa7b21496a ("mtd: prepare partition add and del functions for ioctl requests") внедрил функцию mtd_add_partition() и корректно отклонял специальные значения MTDPART_OFS_APPEND (-1) и MTDPART_OFS_NXTBLK (-2), поскольку эти смещения зависят от отслеживания cur_offset как конца предыдущего раздела. Однако коммит 1a31368bf92e ("mtd: add a flags for partitions which should just leave smth. after them") позже добавил MTDPART_OFS_RETAIN (-3) для пути статической таблицы разделов, не обновив при этом mtd_add_partition() для отклонения этого значения.

При передаче offset=-3 через BLKPG расчет размера RETAIN в allocate_partition() приводит к переполнению по отрицательному значению (underflow): parent_size - 0xFFFFFFFFFFFFFFFD = parent_size + 3. Если результат underflow не оставляет достаточно места, функция allocate_partition() переходит на метку out_register с помощью goto, пропуская инициализацию erasesize. Это приводит к тому, что erasesize=0, что вызывает:

WARN_ON((!mtd->erasesize || !master->_erase) && !(mtd->flags & MTD_NO_ERASE))

в add_mtd_device(). Если результат underflow кажется достаточным для оставления места, вычисляется неверный размер раздела, но проверка "out of reach" (вне досягаемости) обнаруживает недопустимое смещение и создает отключенный пустой раздел (offset=0, size=0), вместо возврата ошибки.

Исправление заключается в добавлении MTDPART_OFS_RETAIN в список значений для отклонения в mtd_add_partition(), что согласуется с существующей обработкой APPEND и NXTBLK.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Ответственный

Linux

Резервировать

17.09.2026

Раскрытие

17.09.2026

Модерация

принято

Вход

VDB-407092

EPSS

0.00000

KEV

Нет

Деятельности

Низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!