On Fri, Sep 03, 2021 at 12:38:26PM -0700, Todd Kjos wrote:
On Fri, Sep 3, 2021 at 1:06 AM Dan Carpenter dan.carpenter@oracle.com wrote:
On Thu, Sep 02, 2021 at 08:35:35AM -0700, Todd Kjos wrote:
On Tue, Aug 31, 2021 at 12:24 AM Martijn Coenen maco@android.com wrote:
On Mon, Aug 30, 2021 at 9:51 PM 'Todd Kjos' via kernel-team kernel-team@android.com wrote:
During BC_FREE_BUFFER processing, the BINDER_TYPE_FDA object cleanup may close 1 or more fds. The close operations are completed using the task work mechanism -- which means the thread needs to return to userspace or the file object may never be dereferenced -- which can lead to hung processes.
Force the binder thread back to userspace if an fd is closed during BC_FREE_BUFFER handling.
Signed-off-by: Todd Kjos tkjos@google.com
Reviewed-by: Martijn Coenen maco@android.com
Please also add to stable releases 5.4 and later.
It would be better if this had a fixes tag so we knew which is the first buggy commit.
There was a long Project Zero article about the Bad Binder exploit because commit f5cb779ba163 ("ANDROID: binder: remove waitqueue when thread exits.") was marked as # 4.14 but it didn't have a Fixes tag and the actual buggy commit was in 4.9.
Good point Dan. I should have included a Fixes tag. Here is the tag (issue introduced in 4.20):
Fixes: 80cd795630d6 ("binder: fix use-after-free due to ksys_close() during fdget()")
Greg- would you like me to send a v2 with the Fixes tag and CC'ing stable appropriately?
I've added it to the commit when I added it to my tree, no need to resend.
thanks,
greg k-h