From: Alban Crequy <albancrequy@xxxxxxxxxxxxxxxxxxx> commit 8678ea06852cd1f819b870c773d43df888d15d46 upstream. If a page fault occurs while copying the first byte, this function resets one byte before dst. As a consequence, an address could be modified and leaded to kernel crashes if case the modified address was accessed later. Fixes: b58294ead14c ("maccess: allow architectures to provide kernel probing directly") Signed-off-by: Alban Crequy <albancrequy@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx> Tested-by: Francis Laniel <flaniel@xxxxxxxxxxxxxxxxxxx> Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Cc: <stable@xxxxxxxxxxxxxxx> [5.8] Link: https://lore.kernel.org/bpf/20221110085614.111213-2-albancrequy@xxxxxxxxxxxxxxxxxxx Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- mm/maccess.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/mm/maccess.c +++ b/mm/maccess.c @@ -99,7 +99,7 @@ long strncpy_from_kernel_nofault(char *d return src - unsafe_addr; Efault: pagefault_enable(); - dst[-1] = '\0'; + dst[0] = '\0'; return -EFAULT; } #else /* HAVE_GET_KERNEL_NOFAULT */