Thread (22 messages) 22 messages, 6 authors, 2016-08-12

[PATCH 2/2] arm: apply more __ro_after_init

From: linux@armlinux.org.uk (Russell King - ARM Linux)
Date: 2016-08-12 16:24:29
Also in: linux-arch, lkml

On Thu, Aug 11, 2016 at 05:54:08PM +0200, Arnd Bergmann wrote:
On Thursday, August 11, 2016 12:06:45 AM CEST Russell King - ARM Linux wrote:
quoted
On Wed, Aug 10, 2016 at 09:41:23PM +0200, Arnd Bergmann wrote:
quoted
It might be better to start by making the fixed mapping readonly,
as KASLR doesn't protect that one at all, and change the TLS
code accordingly.
I think that's impossible, because we gave userspace permission to
read 0xffff0ff0 directly without using __kuser_get_tls.  You're
talking about potentially breaking userspace.

If you disable kuser helpers, then the page becomes read-only and
invisible to userspace anyway.  So, everything is being done there
which can be done - if you have kuser helpers enabled, then you
lose some opportunities for these security improvements.
What I meant was writing to the page through the linear mapping
rather than the virtual mapping at 0xffff0000 so we can leave that
one read-only (I did not consider whether that might cause cache
aliasing problems when reading from the other address).
Kees original patch was about moving the vector pages into the
read-only area after init, so the linear mapping of them becomes
read-only as well.  So that won't work.  We need at least one
read-write mapping for FIQ, and for context switching for kuser
helpers.
Your other point is more important though: if one really cares
about optimizing security here, they probably should disable
kuser helpers completely anyway.
We could probably predicate moving the vectors page into the RO
section when kuser helpers are enabled.
Kees, is that something you have on your radar already?
I believe Android already disable kuser helpers as of a few years ago.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help