https://github.com/torvalds/linux
Revision 2a418cf3f5f1caf911af288e978d61c9844b0695 authored by Andy Lutomirski on 23 February 2019, 01:17:04 UTC, committed by Borislav Petkov on 25 February 2019, 19:17:05 UTC
When calling __put_user(foo(), ptr), the __put_user() macro would call foo() in between __uaccess_begin() and __uaccess_end(). If that code were buggy, then those bugs would be run without SMAP protection. Fortunately, there seem to be few instances of the problem in the kernel. Nevertheless, __put_user() should be fixed to avoid doing this. Therefore, evaluate __put_user()'s argument before setting AC. This issue was noticed when an objtool hack by Peter Zijlstra complained about genregs_get() and I compared the assembly output to the C source. [ bp: Massage commit message and fixed up whitespace. ] Fixes: 11f1a4b9755f ("x86: reorganize SMAP handling in user space accesses") Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Borislav Petkov <bp@suse.de> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Brian Gerst <brgerst@gmail.com> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/20190225125231.845656645@infradead.org
1 parent f331e76
Tip revision: 2a418cf3f5f1caf911af288e978d61c9844b0695 authored by Andy Lutomirski on 23 February 2019, 01:17:04 UTC
x86/uaccess: Don't leak the AC flag into __put_user() value evaluation
x86/uaccess: Don't leak the AC flag into __put_user() value evaluation
Tip revision: 2a418cf
File | Mode | Size |
---|---|---|
android | ||
axis-fifo | ||
board | ||
clocking-wizard | ||
comedi | ||
emxx_udc | ||
erofs | ||
fbtft | ||
fsl-dpaa2 | ||
fwserial | ||
gasket | ||
gdm724x | ||
goldfish | ||
greybus | ||
gs_fpgaboot | ||
iio | ||
ks7010 | ||
media | ||
most | ||
mt7621-dma | ||
mt7621-dts | ||
mt7621-eth | ||
mt7621-mmc | ||
mt7621-pci | ||
mt7621-pinctrl | ||
mt7621-spi | ||
netlogic | ||
nvec | ||
octeon | ||
octeon-usb | ||
olpc_dcon | ||
pi433 | ||
rtl8188eu | ||
rtl8192e | ||
rtl8192u | ||
rtl8712 | ||
rtl8723bs | ||
rtlwifi | ||
rts5208 | ||
sm750fb | ||
speakup | ||
unisys | ||
vboxvideo | ||
vc04_services | ||
vme | ||
vt6655 | ||
vt6656 | ||
wilc1000 | ||
wlan-ng | ||
xgifb | ||
Kconfig | -rw-r--r-- | 2.9 KB |
Makefile | -rw-r--r-- | 1.9 KB |
Computing file changes ...