From ccb839ea4864e69dc2896c4fcf83ef11ffd3e738 Mon Sep 17 00:00:00 2001 From: Vamsi Krishna Gattupalli Date: Tue, 7 Jun 2022 11:06:20 +0530 Subject: [PATCH] msm: ADSPRPC: Restrict untrusted applications from attaching to GuestOS Untrusted application can attach to guestOS and staticPD if it can somehow make INIT IOCTL call with ATTACH flag. This is a potential security issue as the untrusted application can crash guestOS or staticPD. Restrict attach to guestOS or staticPD request if request is being made using non-secure device node. Change-Id: I322c7b242fd0baaf1c1bce2d83b992fecb0ca593 Acked-by: Ekansh Gupta Signed-off-by: Vamsi Krishna Gattupalli --- drivers/char/adsprpc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/char/adsprpc.c b/drivers/char/adsprpc.c index 0f92eab72e68..5fdd69044425 100644 --- a/drivers/char/adsprpc.c +++ b/drivers/char/adsprpc.c @@ -3637,6 +3637,12 @@ static int fastrpc_init_attach_process(struct fastrpc_file *fl, remote_arg_t ra[1]; struct fastrpc_ioctl_invoke_async ioctl; + if (fl->dev_minor == MINOR_NUM_DEV) { + err = -ECONNREFUSED; + ADSPRPC_ERR( + "untrusted app trying to attach to privileged DSP PD\n"); + return err; + } /* * Prepare remote arguments for creating thread group * in guestOS/staticPD on the remote subsystem. @@ -3911,6 +3917,13 @@ static int fastrpc_init_create_static_process(struct fastrpc_file *fl, unsigned int pageslen; } inbuf; + if (fl->dev_minor == MINOR_NUM_DEV) { + err = -ECONNREFUSED; + ADSPRPC_ERR( + "untrusted app trying to attach to audio PD\n"); + return err; + } + if (!init->filelen) goto bail;