В ядре Linux устранена следующая уязвимость: mm/huge_memory: исправить использование фолио NULL в move_pages_huge_pmd() move_pages_huge_pmd…
В ядре Linux устранена следующая уязвимость: mm/huge_memory: исправить использование фолио NULL в move_pages_huge_pmd() move_pages_huge_pmd() обрабатывает UFFDIO_MOVE как для обычных ТГП, так и для огромных Ноль страниц. Для огромного нулевого пути страницы src_folio явно настроен на NULL, и используется в качестве часового, чтобы пропустить фолио-операции, такие как замок и Карта. В огромной ветке нулевой страницы src_folio - это NULL, поэтому folio_mk_pmd(NULL, pgprot) пропускает NULL через folio_pfn() и page_to_pfn(). С SPARSEMEM_VMEMMAP это молча производит поддельный PFN, устанавливая PMD Указывая на несуществующую физическую память. На других моделях памяти это Неуважение к NULL. Используйте page_folio(src_page), чтобы получить действительный огромный нулевой фолиант от страница, которая была получена из pmd_page() и остается в силе во всем. После совершения d82d09e48219 ("мм/огромный_память: отметка PMD mappings of the huge нулевой folio special"), перемещенный огромный ноль PMD должен оставаться особенным, поэтому vm_normal_page_pmd() продолжает рассматривать их как специальные отображения. move_pages_huge_pmd() в настоящее время реконструирует пункт назначения PMD в огромная нулевая ветка страницы, которая падает PMD состояние, такое как pmd_special() на архитектуры с CONFIG_ARCH_HAS_PTE_SPECIAL. В результате, vm_normal_page_pmd() может рассматривать перемещенный огромный ноль PMD как обычную страницу и развратил его пересчет. Вместо того, чтобы реконструировать PMD из фолианта, получите пункт назначения вход от src_pmdval после pmdp_huge_clear_flush(), затем обработайте PMD метаданные так же, как move_huge_pmd() делает для перемещенных записей, пометив его soft-грязный и расчистка uffd-wp.
Продукт разыменовывает указатель, который предполагается допустимым, однако оказывается равным NULL.
https://cwe.mitre.org/data/definitions/476.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 | Отслеживается |