Re: [PATCH v8 6/7] mseal sysmap: update mseal.rst

Liam R. Howlett
2025-03-03T15:06:03Z

* jeffxu@chromium.org <jeffxu@chromium.org> [250303 00:09]:
> From: Jeff Xu <jeffxu@chromium.org>
>
> Update memory sealing documentation to include details about system
> mappings.
>
> Signed-off-by: Jeff Xu <jeffxu@chromium.org>
> Reviewed-by: Kees Cook <kees@kernel.org>

Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com>

> ---
> Documentation/userspace-api/mseal.rst | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/Documentation/userspace-api/mseal.rst b/Documentation/userspace-api/mseal.rst
> index 41102f74c5e2..76e10938302a 100644
> --- a/Documentation/userspace-api/mseal.rst
> +++ b/Documentation/userspace-api/mseal.rst
> @@ -130,6 +130,26 @@ Use cases
>
> - Chrome browser: protect some security sensitive data structures.
>
> +- System mappings:
> + The system mappings are created by the kernel and includes vdso, vvar,
> + vvar_vclock, vectors (arm compact-mode), sigpage (arm compact-mode), uprobes.
> +
> + Those system mappings are readonly only or execute only, memory sealing can
> + protect them from ever changing to writable or unmmap/remapped as different
> + attributes. This is useful to mitigate memory corruption issues where a
> + corrupted pointer is passed to a memory management system.
> +
> + If supported by an architecture (CONFIG_ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS),
> + the CONFIG_MSEAL_SYSTEM_MAPPINGS seals all system mappings of this
> + architecture.
> +
> + The following architectures currently support this feature: x86-64 and arm64.
> +
> + WARNING: This feature breaks programs which rely on relocating
> + or unmapping system mappings. Known broken software at the time
> + of writing includes CHECKPOINT_RESTORE, UML, gVisor, rr. Therefore
> + this config can't be enabled universally.
> +
> When not to use mseal
> =====================
> Applications can apply sealing to any virtual memory region from userspace,
> --
> 2.48.1.711.g2feabab25a-goog
>