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

Сводка

по VulDB • 25.07.2026

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

staging: media: ipu7: исправление двойного освобождения памяти (double-free) и использования после освобождения (use-after-free) в ветках обработки ошибок

В функциях `ipu7_isys_init()` и `ipu7_psys_init()` переменная `pdata` выделяется, а затем передается функции `ipu7_bus_initialize_device()`, которая сохраняет ее в поле `adev->pdata`. Функция `ipu7_bus_release()` освобождает память по адресу `adev->pdata`, когда счетчик ссылок устройства падает до нуля.

Две ветки обработки ошибок некорректно вызывают `kfree(pdata)` после того, как разборка устройства уже освободила эту область памяти:

1. При сбое функции `ipu7_mmu_init()`: вызывается функция `put_device()`, которая уменьшает счетчик ссылок до нуля и запускает цепочку `ipu7_bus_release()` -> `kfree(pdata)`. Последующий вызов `kfree(pdata)` приводит к двойному освобождению памяти (double-free).

2. При сбое функции `ipu7_bus_add_device()`: она внутренним образом вызывает `auxiliary_device_uninit()`, которая, в свою очередь, вызывает `put_device()` -> `ipu7_bus_release()` -> `kfree(pdata)`. Последующий вызов `kfree(pdata)` также является двойным освобождением памяти (double-free).

Обратите внимание, что вызов `kfree(pdata)` при сбое самой функции `ipu7_bus_initialize_device()` является корректным, поскольку в этом случае произошел сбой `auxiliary_device_init()`, и функция очистки (release function) не была установлена, поэтому память по адресу `pdata` должна быть освобождена вручную.

Кроме того, код ошибки не сохранялся перед вызовом функции `put_device()`, что приводило к разыменованию уже освобожденного указателя `adev` макросом `ERR_CAST()` при формировании возвращаемого значения. Для исправления этой ситуации сохраните значение ошибки из `dev_err_probe()` до вызова `put_device()` и вместо этого возвращайте результат функции `ERR_PTR()`.

Удалены избыточные вызовы `kfree(pdata)` и устранена ошибка use-after-free в возвращаемых значениях двух затронутых веток обработки ошибок.

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

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

Linux

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

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383264

EPSS

0.00206

KEV

Нет

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

Низкий

Источники

Do you need the next level of professionalism?

Upgrade your account now!