Re: Suggest make 'user_access_begin()' do 'access_ok()' to stable kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 11, 2020 at 09:37:42AM +0800, Miles Chen wrote:
> On Wed, 2020-06-10 at 20:02 +0200, Greg KH wrote:
> > On Thu, Jun 11, 2020 at 01:58:20AM +0800, Miles Chen wrote:
> > > Hi,
> > > 
> > > I suggest to include the commit: 594cc251fdd0 make 'user_access_begin()'
> > > do 'access_ok()' for CVE-2018-20669.
> > > 
> > > stable version to apply to: kernel-4.14.y and kernel-4.19.y.
> > > 
> > > 
> > > From the discussion below, I checked the latest kernel and found that we
> > > should also apply other 4 patches. (total 5 patches)
> > > https://lkml.org/lkml/2020/5/12/943
> > > 
> > > 
> > > patch list:
> > > commit ab10ae1c3bef lib: Reduce user_access_begin() boundaries in
> > > strncpy_from_user() and strnlen_user()
> > > commit 6e693b3ffecb x86: uaccess: Inhibit speculation past access_ok()
> > > in user_access_begin()
> > > commit 9cb2feb4d21d arch/openrisc: Fix issues with access_ok()
> > > commit 94bd8a05cd4d Fix 'acccess_ok()' on alpha and SH
> > > commit 594cc251fdd0 make 'user_access_begin()' do 'access_ok()'
> > > 
> > > 
> > > Where only commit 6e693b3ffecb does not need backport modifications.
> > > I attach my backport patches in this email.
> > > 
> > > I merged the patches with kernel-4.19.127 and kernel-4.14.183 without
> > > conflicts.
> > > Build with arm64 defconfig and bootup on arm64 QEMU environment.
> > > 
> > > cheers,
> > > Miles
> > 
> > > From ac351de9ddd86ef717a3f89236dc5f6b2a108cc7 Mon Sep 17 00:00:00 2001
> > > From: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > > Date: Fri, 4 Jan 2019 12:56:09 -0800
> > > Subject: [PATCH] BACKPORT: make 'user_access_begin()' do 'access_ok()'
> > > 
> > > upstream commit 594cc251fdd0 ("make 'user_access_begin()' do 'access_ok()'")
> > > 
> > > Originally, the rule used to be that you'd have to do access_ok()
> > > separately, and then user_access_begin() before actually doing the
> > > direct (optimized) user access.
> > > 
> > > But experience has shown that people then decide not to do access_ok()
> > > at all, and instead rely on it being implied by other operations or
> > > similar.  Which makes it very hard to verify that the access has
> > > actually been range-checked.
> > > 
> > > If you use the unsafe direct user accesses, hardware features (either
> > > SMAP - Supervisor Mode Access Protection - on x86, or PAN - Privileged
> > > Access Never - on ARM) do force you to use user_access_begin().  But
> > > nothing really forces the range check.
> > > 
> > > By putting the range check into user_access_begin(), we actually force
> > > people to do the right thing (tm), and the range check vill be visible
> > > near the actual accesses.  We have way too long a history of people
> > > trying to avoid them.
> > > 
> > > Bug: 135368228
> > > Change-Id: I4ca0e4566ea080fa148c5e768bb1a0b6f7201c01
> > > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > 
> > No need for "Bug:" or "Change-Id:" for patches for stable trees.
> > 
> > Also, can you please sign off on these as well?
> > 
> > Can you fix that up and resend?  I'll be glad to queue them up then.
> > 
> > thanks,
> 
> Remove the "Bug/Change-Id" from
> 0001-BACKPORT-make-user_access_begin-do-access_ok.patch.
> 
> Actually, I got the patch from
> https://android-review.googlesource.com/c/kernel/common/+/1114632
> Todd backported the patch but there is no Todd's signed-off-by in his
> patch. Should I add "Signed-off-by: Todd Kjos <tkjos@xxxxxxxxxx>" as
> well?

Hm, nah, I'll fix these up, we don't need the Android-specific headers
on the patch either.  Thanks for the backports, I'll go try to queue
them up now...

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux