From 4e404290e45c29ca83fd2ed20146ab79a2931e10 Mon Sep 17 00:00:00 2001 From: Nick Kralevich <nnk@google.com> Date: Thu, 9 Feb 2017 16:08:11 -0800 Subject: [PATCH] Move net.dns* to it's own label. Move net.dns* from net_radio_prop to the newly created label net_dns_prop. This allows finer grain control over this specific property. Prior to this change, this property was readable to all SELinux domains, and writable by the following SELinux domains: * system_server * system_app (apps which run as UID=system) * netmgrd * radio This change: 1) Removes read access to this property to everyone EXCEPT untrusted_app and system_server. 2) Limit write access to system_server. In particular, this change removes read access to priv_apps. Any priv_app which ships with the system should not be reading this property. Bug: 34115651 Test: Device boots, wifi turns on, no problems browsing the internet Change-Id: I8a32e98c4f573d634485c4feac91baa35d021d38 --- private/property_contexts | 2 +- private/system_server.te | 1 + private/untrusted_app.te | 4 ++++ public/property.te | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/private/property_contexts b/private/property_contexts index 552c6b5f2..78455050c 100644 --- a/private/property_contexts +++ b/private/property_contexts @@ -8,7 +8,7 @@ net.ppp u:object_r:net_radio_prop:s0 net.qmi u:object_r:net_radio_prop:s0 net.lte u:object_r:net_radio_prop:s0 net.cdma u:object_r:net_radio_prop:s0 -net.dns u:object_r:net_radio_prop:s0 +net.dns u:object_r:net_dns_prop:s0 sys.usb.config u:object_r:system_radio_prop:s0 ril. u:object_r:radio_prop:s0 ro.ril. u:object_r:radio_prop:s0 diff --git a/private/system_server.te b/private/system_server.te index d0483f54d..30fe3e2ba 100644 --- a/private/system_server.te +++ b/private/system_server.te @@ -394,6 +394,7 @@ set_prop(system_server, system_prop) set_prop(system_server, safemode_prop) set_prop(system_server, dhcp_prop) set_prop(system_server, net_radio_prop) +set_prop(system_server, net_dns_prop) set_prop(system_server, system_radio_prop) set_prop(system_server, debug_prop) set_prop(system_server, powerctl_prop) diff --git a/private/untrusted_app.te b/private/untrusted_app.te index c0d2b93ef..b6a80da36 100644 --- a/private/untrusted_app.te +++ b/private/untrusted_app.te @@ -21,6 +21,10 @@ app_domain(untrusted_app) net_domain(untrusted_app) bluetooth_domain(untrusted_app) +# b/34115651 - net.dns* properties read +# This will go away in a future Android release +get_prop(untrusted_app, net_dns_prop) + # Allow the allocation and use of ptys # Used by: https://play.google.com/store/apps/details?id=jackpal.androidterm create_pty(untrusted_app) diff --git a/public/property.te b/public/property.te index 572c24e84..5bf0c6235 100644 --- a/public/property.te +++ b/public/property.te @@ -28,6 +28,7 @@ type logpersistd_logging_prop, property_type; type log_prop, property_type, log_property_type; type log_tag_prop, property_type, log_property_type; type mmc_prop, property_type; +type net_dns_prop, property_type; type net_radio_prop, property_type, core_property_type; type nfc_prop, property_type, core_property_type; type overlay_prop, property_type; -- GitLab