lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aS1dlsDcV9cpD76z@arm.com>
Date: Mon, 1 Dec 2025 09:19:18 +0000
From: Yury Khrustalev <yury.khrustalev@....com>
To: Mark Brown <broonie@...nel.org>
CC: Catalin Marinas <catalin.marinas@....com>, Will Deacon <will@...nel.org>,
	Thiago Jung Bauermann <thiago.bauermann@...aro.org>,
	<linux-arm-kernel@...ts.infradead.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] arm64/gcs: Flush the GCS locking state on exec

On Sat, Nov 29, 2025 at 12:48:45AM +0000, Mark Brown wrote:
> When we exec a new task we forget to flush the set of locked GCS mode bits.
> Since we do flush the rest of the state this means that if GCS is locked
> the new task will be unable to enable GCS, it will be locked as being
> disabled. Add the expected flush.
> 
> Fixes: fc84bc5378a8 ("arm64/gcs: Context switch GCS state for EL0")
> Reported-by: Yury Khrustalev <Yury.Khrustalev@....com>
> Signed-off-by: Mark Brown <broonie@...nel.org>

Thanks! I've tested this patch and it works as expected.

Tested-by: Yury Khrustalev <yury.khrustalev@....com>

> ---
>  arch/arm64/kernel/process.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
> index fba7ca102a8c..489554931231 100644
> --- a/arch/arm64/kernel/process.c
> +++ b/arch/arm64/kernel/process.c
> @@ -292,6 +292,7 @@ static void flush_gcs(void)
>  	current->thread.gcs_base = 0;
>  	current->thread.gcs_size = 0;
>  	current->thread.gcs_el0_mode = 0;
> +	current->thread.gcs_el0_locked = 0;
>  	write_sysreg_s(GCSCRE0_EL1_nTR, SYS_GCSCRE0_EL1);
>  	write_sysreg_s(0, SYS_GCSPR_EL0);
>  }
> 
> ---
> base-commit: ac3fd01e4c1efce8f2c054cdeb2ddd2fc0fb150d
> change-id: 20251128-arm64-gcs-flush-lock-163eab9c22f4
> 
> Best regards,
> --  
> Mark Brown <broonie@...nel.org>
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ