From 8cd92804dba4fbb1f5824005dab81c85d8ee6c94 Mon Sep 17 00:00:00 2001 From: Dmitry Baryshkov Date: Thu, 8 Apr 2021 14:32:30 -0600 Subject: [PATCH] misc: fastrpc: restrict user apps from sending kernel RPC messages CVE-2021-28375 Verify that user applications are not using the kernel RPC message handle to restrict them from directly attaching to guest OS on the remote subsystem. This is a port of CVE-2019-2308 fix. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Cc: Srinivas Kandagatla Cc: Jonathan Marek Cc: stable@vger.kernel.org Signed-off-by: Dmitry Baryshkov Link: https://lore.kernel.org/r/20210212192658.3476137-1-dmitry.baryshkov@linaro.org Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 20c40794eb85ea29852d7bc37c55713802a543d6) Signed-off-by: Tim Gardner Acked-by: Stefan Bader Acked-by: Kleber Sacilotto de Souza Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/misc/fastrpc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index e3e085e33d46b..547d4ae57f266 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -935,6 +935,11 @@ static int fastrpc_internal_invoke(struct fastrpc_user *fl, u32 kernel, if (!fl->cctx->rpdev) return -EPIPE; + if (handle == FASTRPC_INIT_HANDLE && !kernel) { + dev_warn_ratelimited(fl->sctx->dev, "user app trying to send a kernel RPC message (%d)\n", handle); + return -EPERM; + } + ctx = fastrpc_context_alloc(fl, kernel, sc, args); if (IS_ERR(ctx)) return PTR_ERR(ctx);