Re: [PATCH v10 11/15] x86/vsyscall: Disable LASS if vsyscall mode is set to EMULATE

Edgecombe, Rick P
2025-10-07T18:43:25Z

On Mon, 2025-10-06 at 23:51 -0700, Sohil Mehta wrote:
> The EMULATE mode of vsyscall maps the vsyscall page with a high kernel
> address directly into user address space. Reading the vsyscall page in
> EMULATE mode would cause LASS to trigger a #GP.
>
> Fixing the LASS violation in EMULATE mode would require complex
> instruction decoding because the resulting #GP does not include any
> useful error information, and the vsyscall address is not readily
> available in the RIP.
>
> The EMULATE mode has been deprecated since 2022 and can only be enabled
> using the command line parameter vsyscall=emulate. See commit
> bf00745e7791 ("x86/vsyscall: Remove CONFIG_LEGACY_VSYSCALL_EMULATE") for
> details. At this point, no one is expected to be using this insecure
> mode. The rare usages that need it obviously do not care about security.
>
> Disable LASS when EMULATE mode is requested to avoid breaking legacy
> user software. Also, update the vsyscall documentation to reflect this.
> LASS will only be supported if vsyscall mode is set to XONLY (default)
> or NONE.
>
> Signed-off-by: Sohil Mehta <sohil.mehta@intel.com>

Reviewed-by: Rick Edgecombe <rick.p.edgecombe@intel.com>

> ---
> v10:
>  - No significant change. Minor changes to code formatting.
>
> Eventually, we want to get rid of the EMULATE mode altogether. Linus and
> AndyL seem to be okay with such a change. However, those changes are
> beyond the scope of this series.