* [PATCH v2] misc: fastrpc: Fix a Use after-free-bug by race condition @ 2023-03-23 1:36 Sangsup Lee 2023-04-27 9:29 ` sangsup lee 0 siblings, 1 reply; 6+ messages in thread From: Sangsup Lee @ 2023-03-23 1:36 UTC (permalink / raw) To: Srinivas Kandagatla Cc: Amol Maheshwari, Arnd Bergmann, Greg Kroah-Hartman, linux-arm-msm, linux-kernel, Sangsup lee From: Sangsup lee <k1rh4.lee@gmail.com> This patch adds mutex_lock for fixing an Use-after-free bug. fastrpc_req_munmap_impl can be called concurrently in multi-threded environments. The buf which is allocated by list_for_each_safe can be used after another thread frees it. Signed-off-by: Sangsup lee <k1rh4.lee@gmail.com> --- V1 -> V2: moving the locking to ioctl. drivers/misc/fastrpc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 93ebd174d848..aa1cf0e9f4ed 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1901,7 +1901,9 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int cmd, err = fastrpc_req_mmap(fl, argp); break; case FASTRPC_IOCTL_MUNMAP: + mutex_lock(&fl->mutex); err = fastrpc_req_munmap(fl, argp); + mutex_unlock(&fl->mutex); break; case FASTRPC_IOCTL_MEM_MAP: err = fastrpc_req_mem_map(fl, argp); -- 2.25.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2] misc: fastrpc: Fix a Use after-free-bug by race condition 2023-03-23 1:36 [PATCH v2] misc: fastrpc: Fix a Use after-free-bug by race condition Sangsup Lee @ 2023-04-27 9:29 ` sangsup lee 2023-04-27 9:52 ` Greg Kroah-Hartman 0 siblings, 1 reply; 6+ messages in thread From: sangsup lee @ 2023-04-27 9:29 UTC (permalink / raw) To: Srinivas Kandagatla Cc: Amol Maheshwari, Arnd Bergmann, Greg Kroah-Hartman, linux-arm-msm, linux-kernel Is there any comment for this issue? (reference: https://www.spinics.net/lists/kernel/msg4731408.html) 2023년 3월 23일 (목) 오전 10:37, Sangsup Lee <k1rh4.lee@gmail.com>님이 작성: > > From: Sangsup lee <k1rh4.lee@gmail.com> > > This patch adds mutex_lock for fixing an Use-after-free bug. > fastrpc_req_munmap_impl can be called concurrently in multi-threded environments. > The buf which is allocated by list_for_each_safe can be used after another thread frees it. > > Signed-off-by: Sangsup lee <k1rh4.lee@gmail.com> > --- > V1 -> V2: moving the locking to ioctl. > > drivers/misc/fastrpc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > index 93ebd174d848..aa1cf0e9f4ed 100644 > --- a/drivers/misc/fastrpc.c > +++ b/drivers/misc/fastrpc.c > @@ -1901,7 +1901,9 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int cmd, > err = fastrpc_req_mmap(fl, argp); > break; > case FASTRPC_IOCTL_MUNMAP: > + mutex_lock(&fl->mutex); > err = fastrpc_req_munmap(fl, argp); > + mutex_unlock(&fl->mutex); > break; > case FASTRPC_IOCTL_MEM_MAP: > err = fastrpc_req_mem_map(fl, argp); > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] misc: fastrpc: Fix a Use after-free-bug by race condition 2023-04-27 9:29 ` sangsup lee @ 2023-04-27 9:52 ` Greg Kroah-Hartman 2023-04-27 11:51 ` sangsup lee 2023-04-28 5:00 ` sangsup lee 0 siblings, 2 replies; 6+ messages in thread From: Greg Kroah-Hartman @ 2023-04-27 9:52 UTC (permalink / raw) To: sangsup lee Cc: Srinivas Kandagatla, Amol Maheshwari, Arnd Bergmann, linux-arm-msm, linux-kernel On Thu, Apr 27, 2023 at 06:29:16PM +0900, sangsup lee wrote: > Is there any comment for this issue? What issue? > (reference: https://www.spinics.net/lists/kernel/msg4731408.html) Please use lore.kernel.org links, we have no control over any other random email archive . And the above link just points to this proposed patch. > > > 2023년 3월 23일 (목) 오전 10:37, Sangsup Lee <k1rh4.lee@gmail.com>님이 작성: > > > > From: Sangsup lee <k1rh4.lee@gmail.com> > > > > This patch adds mutex_lock for fixing an Use-after-free bug. > > fastrpc_req_munmap_impl can be called concurrently in multi-threded environments. > > The buf which is allocated by list_for_each_safe can be used after another thread frees it. How was this tested? > > > > Signed-off-by: Sangsup lee <k1rh4.lee@gmail.com> > > --- > > V1 -> V2: moving the locking to ioctl. > > > > drivers/misc/fastrpc.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > > index 93ebd174d848..aa1cf0e9f4ed 100644 > > --- a/drivers/misc/fastrpc.c > > +++ b/drivers/misc/fastrpc.c > > @@ -1901,7 +1901,9 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int cmd, > > err = fastrpc_req_mmap(fl, argp); > > break; > > case FASTRPC_IOCTL_MUNMAP: > > + mutex_lock(&fl->mutex); > > err = fastrpc_req_munmap(fl, argp); > > + mutex_unlock(&fl->mutex); Are you sure you can call this function with the lock? If so, why isn't the mmap ioctl also locked? thanks, greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] misc: fastrpc: Fix a Use after-free-bug by race condition 2023-04-27 9:52 ` Greg Kroah-Hartman @ 2023-04-27 11:51 ` sangsup lee 2023-04-27 12:27 ` Greg Kroah-Hartman 2023-04-28 5:00 ` sangsup lee 1 sibling, 1 reply; 6+ messages in thread From: sangsup lee @ 2023-04-27 11:51 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Srinivas Kandagatla, Amol Maheshwari, Arnd Bergmann, linux-arm-msm, linux-kernel I reported fastrpc bug in Feb,2023.(https://lore.kernel.org/lkml/20230216014120.3110-1-k1rh4.lee@gmail.com) And Srinivas recommended this patch code for patch v2. That's why I sent this patch v2 however, I haven't received any reply after that. I just want to know the next step for patching this code. Should I just keep waiting ? Or Please let me know if I need to provide you with more information. (Ps. I'm sorry, i re-send this reply because of missing text-mode ) Best regards. 2023년 4월 27일 (목) 오후 6:52, Greg Kroah-Hartman <gregkh@linuxfoundation.org>님이 작성: > > On Thu, Apr 27, 2023 at 06:29:16PM +0900, sangsup lee wrote: > > Is there any comment for this issue? > > What issue? > > > (reference: https://www.spinics.net/lists/kernel/msg4731408.html) > > Please use lore.kernel.org links, we have no control over any other > random email archive . > > And the above link just points to this proposed patch. > > > > > > > 2023년 3월 23일 (목) 오전 10:37, Sangsup Lee <k1rh4.lee@gmail.com>님이 작성: > > > > > > From: Sangsup lee <k1rh4.lee@gmail.com> > > > > > > This patch adds mutex_lock for fixing an Use-after-free bug. > > > fastrpc_req_munmap_impl can be called concurrently in multi-threded environments. > > > The buf which is allocated by list_for_each_safe can be used after another thread frees it. > > How was this tested? > > > > > > > Signed-off-by: Sangsup lee <k1rh4.lee@gmail.com> > > > --- > > > V1 -> V2: moving the locking to ioctl. > > > > > > drivers/misc/fastrpc.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > > > index 93ebd174d848..aa1cf0e9f4ed 100644 > > > --- a/drivers/misc/fastrpc.c > > > +++ b/drivers/misc/fastrpc.c > > > @@ -1901,7 +1901,9 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int cmd, > > > err = fastrpc_req_mmap(fl, argp); > > > break; > > > case FASTRPC_IOCTL_MUNMAP: > > > + mutex_lock(&fl->mutex); > > > err = fastrpc_req_munmap(fl, argp); > > > + mutex_unlock(&fl->mutex); > > Are you sure you can call this function with the lock? If so, why isn't > the mmap ioctl also locked? > > thanks, > > greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] misc: fastrpc: Fix a Use after-free-bug by race condition 2023-04-27 11:51 ` sangsup lee @ 2023-04-27 12:27 ` Greg Kroah-Hartman 0 siblings, 0 replies; 6+ messages in thread From: Greg Kroah-Hartman @ 2023-04-27 12:27 UTC (permalink / raw) To: sangsup lee Cc: Srinivas Kandagatla, Amol Maheshwari, Arnd Bergmann, linux-arm-msm, linux-kernel A: http://en.wikipedia.org/wiki/Top_post Q: Were do I find info about this thing called top-posting? A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? A: No. Q: Should I include quotations after my reply? http://daringfireball.net/2007/07/on_top On Thu, Apr 27, 2023 at 08:51:48PM +0900, sangsup lee wrote: > I reported fastrpc bug in > Feb,2023.(https://lore.kernel.org/lkml/20230216014120.3110-1-k1rh4.lee@gmail.com) That was a patch, not a bug report. How was this tested? > And Srinivas recommended this patch code for patch v2. > That's why I sent this patch v2 however, I haven't received any reply > after that. > > I just want to know the next step for patching this code. > Should I just keep waiting ? Or Please let me know if I need to > provide you with more information. Please read my comments on my last email on the patch for what you need to address. thanks, greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] misc: fastrpc: Fix a Use after-free-bug by race condition 2023-04-27 9:52 ` Greg Kroah-Hartman 2023-04-27 11:51 ` sangsup lee @ 2023-04-28 5:00 ` sangsup lee 1 sibling, 0 replies; 6+ messages in thread From: sangsup lee @ 2023-04-28 5:00 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Srinivas Kandagatla, Amol Maheshwari, Arnd Bergmann, linux-arm-msm, linux-kernel I apologize for recognizing the email in the TOP POST format. I missed the comment in the previous email. 2023년 4월 27일 (목) 오후 6:52, Greg Kroah-Hartman <gregkh@linuxfoundation.org>님이 작성: > > On Thu, Apr 27, 2023 at 06:29:16PM +0900, sangsup lee wrote: > > Is there any comment for this issue? > > What issue? > > > (reference: https://www.spinics.net/lists/kernel/msg4731408.html) > > Please use lore.kernel.org links, we have no control over any other > random email archive . > > And the above link just points to this proposed patch. > > > > > > > 2023년 3월 23일 (목) 오전 10:37, Sangsup Lee <k1rh4.lee@gmail.com>님이 작성: > > > > > > From: Sangsup lee <k1rh4.lee@gmail.com> > > > > > > This patch adds mutex_lock for fixing an Use-after-free bug. > > > fastrpc_req_munmap_impl can be called concurrently in multi-threded environments. > > > The buf which is allocated by list_for_each_safe can be used after another thread frees it. > > How was this tested? > I was unable to configure the environment in which this code is running. Therefore, I could not go through dynamic testing for the related issue. However, I found vulnerabilities in similar types of functions in other drivers in the mobile environment, so I think this code is also problematic. > > > > > > Signed-off-by: Sangsup lee <k1rh4.lee@gmail.com> > > > --- > > > V1 -> V2: moving the locking to ioctl. > > > > > > drivers/misc/fastrpc.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > > > index 93ebd174d848..aa1cf0e9f4ed 100644 > > > --- a/drivers/misc/fastrpc.c > > > +++ b/drivers/misc/fastrpc.c > > > @@ -1901,7 +1901,9 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int cmd, > > > err = fastrpc_req_mmap(fl, argp); > > > break; > > > case FASTRPC_IOCTL_MUNMAP: > > > + mutex_lock(&fl->mutex); > > > err = fastrpc_req_munmap(fl, argp); > > > + mutex_unlock(&fl->mutex); > > Are you sure you can call this function with the lock? If so, why isn't > the mmap ioctl also locked? I am convinced that FASTRPC_IOCTL_MUNMAP can lead to a race condition bug. However, as I mentioned in patch v1, I am not an expert in fastrpc. I worried about the side effects of the code I suggested. So, I asked you to recommend which code to use, and this is the code that was recommended to me. And I didn't check the mmap function because I couldn't find a bug in mmap. > > thanks, > > greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-04-28 5:00 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-03-23 1:36 [PATCH v2] misc: fastrpc: Fix a Use after-free-bug by race condition Sangsup Lee 2023-04-27 9:29 ` sangsup lee 2023-04-27 9:52 ` Greg Kroah-Hartman 2023-04-27 11:51 ` sangsup lee 2023-04-27 12:27 ` Greg Kroah-Hartman 2023-04-28 5:00 ` sangsup lee
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox