Messages in this thread | | | Date | Mon, 20 Mar 2023 12:00:02 +0100 | Subject | Re: [PATCH v8 26/40] mm: Warn on shadow stack memory in wrong vma | From | David Hildenbrand <> |
| |
On 19.03.23 01:15, Rick Edgecombe wrote: > The x86 Control-flow Enforcement Technology (CET) feature includes a new > type of memory called shadow stack. This shadow stack memory has some > unusual properties, which requires some core mm changes to function > properly. > > One sharp edge is that PTEs that are both Write=0 and Dirty=1 are > treated as shadow by the CPU, but this combination used to be created by > the kernel on x86. Previous patches have changed the kernel to now avoid > creating these PTEs unless they are for shadow stack memory. In case any > missed corners of the kernel are still creating PTEs like this for > non-shadow stack memory, and to catch any re-introductions of the logic, > warn if any shadow stack PTEs (Write=0, Dirty=1) are found in non-shadow > stack VMAs when they are being zapped. This won't catch transient cases > but should have decent coverage. It will be compiled out when shadow > stack is not configured. > > In order to check if a PTE is shadow stack in core mm code, add two arch > breakouts arch_check_zapped_pte/pmd(). This will allow shadow stack > specific code to be kept in arch/x86. > > Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com> > Reviewed-by: Kees Cook <keescook@chromium.org> > Acked-by: Mike Rapoport (IBM) <rppt@kernel.org> > Tested-by: Pengfei Xu <pengfei.xu@intel.com> > Tested-by: John Allen <john.allen@amd.com> > Tested-by: Kees Cook <keescook@chromium.org>
Acked-by: David Hildenbrand <david@redhat.com>
-- Thanks,
David / dhildenb
| |