В ядре Linux устранена следующая уязвимость: f2fs: исправить использование-после-свободу от sbi в f2fs_compress_write_end_io() В f2fs_compr…
В ядре Linux устранена следующая уязвимость: f2fs: исправить использование-после-свободу от sbi в f2fs_compress_write_end_io() В f2fs_compress_write_end_io(), dec_page_count(sbi, тип) может принести счетчик F2FS_WB_CP_DATA до нуля, разблокировка f2fs_wait_on_all_pages() in f2fs_put_super() на параллельном неувеличительном монтаже Процессор. Немонтичной путь затем переходит к звонку f2fs_destroy_page_array_cache(sbi), который разрушает sbi->page_array_slab через kmem_cache_destroy(), и в конечном итоге kfree(sbi). Между тем, обратный звонок о завершении био-завершение все еще выполняет: когда он достигает page_array_free(sbi, ...), он ссылается sbi->page_array_slab — разрушенный кэш плиты — позвонить kmem_cache_free(), вызывая использование-после-бесплатно. Это тот же класс ошибок, что и CVE-2026-23234 (который исправил эквивалентная гонка в f2fs_write_end_io() в data.c), но в сжатый путь завершения записи, который не был покрыт этим исправлением. Исправьте это, перенеся dec_page_count() в после page_array_free(), поэтому что все Sbi доступ к завершены до контр-декремента, который может разблокировка разбора. Для не-последних фоли (где Atomic_dec_return on cic->tending_pages is nonzero), dec_page_count вызывается немедленно перед возвращением — page_array_free не достигается на этом пути, поэтому Нет доступа к Sbi после декремента. За последнее фолио, page_array_free работает, пока счетчик F2FS_WB_CP_DATA все еще ненуль (этот фолиант еще не урезал его), сохраняя Sbi живым, и dec_page_count работает как окончательная операция.
Продукт повторно использует или ссылается на память после её освобождения. В какой-то момент эта память может быть выделена повторно и сохранена в другом указателе, тогда как исходный указатель на освобождённую память используется вновь. Поскольку теперь по этому адресу может храниться посторонний объект, исходное использование указателя может привести к повреждению памяти или иным непреднамеренным последствиям. Если новая структура данных содержит указатель на функцию, то при исполнении может быть вызван код, контролируемый злоумышленником.
https://cwe.mitre.org/data/definitions/416.html →Открыть в коллекции CWE →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux_kernel | * | Отслеживается |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.12 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-6.18 | Отслеживается | |
| kernel-doc-7.0 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.12 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-6.18 | Отслеживается | |
| kernel-headers-7.0 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.12 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается | |
| kernel-headers-modules-6.18 | Отслеживается |