2016-12-07 12:19:24

by Amit Pundir

[permalink] [raw]
Subject: [PATCH 1/2] config: android-recommended: disable aio support

From: Daniel Micay <[email protected]>

The aio interface adds substantial attack surface for a feature that's
not being exposed by Android at all. It's unlikely that anyone is using
the kernel feature directly either. This feature is rarely used even on
servers. The glibc POSIX aio calls really use thread pools. The lack of
widespread usage also means this is relatively poorly audited/tested.

The kernel's aio rarely provides performance benefits over using a
thread pool and is quite incomplete in terms of system call coverage
along with having edge cases where blocking can occur. Part of the
performance issue is the fact that it only supports direct io, not
buffered io. The existing API is considered fundamentally flawed
and it's unlikely it will be expanded, but rather replaced:

https://marc.info/?l=linux-aio&m=145255815216051&w=2

Since ext4 encryption means no direct io support, kernel aio isn't even
going to work properly on Android devices using file-based encryption.

Reviewed-at: https://android-review.googlesource.com/#/c/292158/

Signed-off-by: Daniel Micay <[email protected]>
Signed-off-by: Amit Pundir <[email protected]>
---
kernel/configs/android-recommended.config | 1 +
1 file changed, 1 insertion(+)

diff --git a/kernel/configs/android-recommended.config b/kernel/configs/android-recommended.config
index 297756b..4719871 100644
--- a/kernel/configs/android-recommended.config
+++ b/kernel/configs/android-recommended.config
@@ -1,4 +1,5 @@
# KEEP ALPHABETICALLY SORTED
+# CONFIG_AIO is not set
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_LEGACY_PTYS is not set
--
2.7.4


2016-12-07 12:19:25

by Amit Pundir

[permalink] [raw]
Subject: [PATCH 2/2] config: android-base: enable hardened usercopy and kernel ASLR

Enable CONFIG_HARDENED_USERCOPY and CONFIG_RANDOMIZE_BASE in Android
base config fragment.

Reviewed-at: https://android-review.googlesource.com/#/c/283659/
Reviewed-at: https://android-review.googlesource.com/#/c/278133/

Signed-off-by: Amit Pundir <[email protected]>
---
kernel/configs/android-base.config | 2 ++
1 file changed, 2 insertions(+)

diff --git a/kernel/configs/android-base.config b/kernel/configs/android-base.config
index 1a8f34f..26a06e0 100644
--- a/kernel/configs/android-base.config
+++ b/kernel/configs/android-base.config
@@ -21,6 +21,7 @@ CONFIG_CP15_BARRIER_EMULATION=y
CONFIG_DEFAULT_SECURITY_SELINUX=y
CONFIG_EMBEDDED=y
CONFIG_FB=y
+CONFIG_HARDENED_USERCOPY=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_INET6_AH=y
CONFIG_INET6_ESP=y
@@ -129,6 +130,7 @@ CONFIG_PPP_DEFLATE=y
CONFIG_PPP_MPPE=y
CONFIG_PREEMPT=y
CONFIG_QUOTA=y
+CONFIG_RANDOMIZE_BASE=y
CONFIG_RTC_CLASS=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_SECCOMP=y
--
2.7.4

2016-12-08 15:38:34

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 2/2] config: android-base: enable hardened usercopy and kernel ASLR

On Wed, Dec 7, 2016 at 6:19 AM, Amit Pundir <[email protected]> wrote:
> Enable CONFIG_HARDENED_USERCOPY and CONFIG_RANDOMIZE_BASE in Android
> base config fragment.

It would be good to note here if options are things Android wants
(i.e. will work without) or requires to function. These seem pretty
obvious to be the former.

Acked-by: Rob Herring <[email protected]>

Rob