В ядре Linux устранена следующая уязвимость: mm/damon/stat: deallocate damon_call() отказ утечка damon_ctx damon_stat_start() всегда выделя…
В ядре Linux устранена следующая уязвимость: mm/damon/stat: deallocate damon_call() отказ утечка damon_ctx damon_stat_start() всегда выделяет объект damon_ctx модуля (damon_stat_context). Между тем, если damon_call() в функции не удается, объект Damon_ctx не является deallocated. Следовательно, если damon_call() провалился, и пользователь пишет Y, чтобы «включить» снова, ранее выделенный объект damon_ctx просочился. Это не может быть просто исправлено путем размещения объекта damon_ctx, когда Damon_call() терпит неудачу. Это потому, что damon_call() неудача не гарантирует основная функция кдамонда, которая получает доступ к объекту damon_ctx, является Полностью закончен. Другими словами, если damon_stat_start() делится Damon_ctx объект после damon_call() неудача, еще не прекращенный Кдамонд может получить доступ к освобожденной памяти (использовать после-бесплатно). Исправить утечку, избегая использования после-бесплатно, сохраняя возвращение damon_stat_start() без адресно размещения объекта damon_ctx после damon_call() отказ, но делификация его при вызове функции И кдаманда полностью прекращена. Если Дамонд еще не прекращено, просто вернуть -EAGAIN, так как кдамонд скоро будет прекращен. Проблема была открыта [1] Сашико.
Продукт повторно использует или ссылается на память после её освобождения. В какой-то момент эта память может быть выделена повторно и сохранена в другом указателе, тогда как исходный указатель на освобождённую память используется вновь. Поскольку теперь по этому адресу может храниться посторонний объект, исходное использование указателя может привести к повреждению памяти или иным непреднамеренным последствиям. Если новая структура данных содержит указатель на функцию, то при исполнении может быть вызван код, контролируемый злоумышленником.
https://cwe.mitre.org/data/definitions/416.html →Открыть в коллекции CWE →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux_kernel | * | Отслеживается |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-pine | Отслеживается | |
| kernel-headers-modules-pine | Отслеживается | |
| kernel-headers-pine | Отслеживается | |
| kernel-headers-pine | Отслеживается | |
| kernel-image-6.18 | Отслеживается | |
| kernel-image-6.18 | Отслеживается | |
| kernel-image-6.18-checkinstall | Отслеживается | |
| kernel-image-6.18-checkinstall | Отслеживается | |
| kernel-image-pine | Отслеживается |