From 678528ed42e98bb3e71d0efc6768ff881d04728c Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Thu, 26 Mar 2020 10:13:27 +0900 Subject: [PATCH] Check permissions in INetworkManagementService#setIPv6AddrGenMode This function was missing a permission check, and thus would allow any app to transitively call the netd setIPv6AddrGenMode IPC. Fortunately, due to a bug in that IPC, it can only set the mode to stable privacy and not to EUI-64. This code is unused. The only thing on the system that sets the IPv6 addrgen mode is the networkstack, but that does so by calling the netd IPC directly. Test: builds Bug: 141920289 Change-Id: Id54431e81dceaff09f785a280ceee0973543a30f --- .../core/java/com/android/server/NetworkManagementService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index e5fb5062541ed..ab0d2b7b62d56 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -55,6 +55,7 @@ import android.net.IpPrefix; import android.net.LinkAddress; import android.net.Network; import android.net.NetworkPolicyManager; +import android.net.NetworkStack; import android.net.NetworkStats; import android.net.NetworkUtils; import android.net.RouteInfo; @@ -874,6 +875,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub { @Override public void setIPv6AddrGenMode(String iface, int mode) throws ServiceSpecificException { + NetworkStack.checkNetworkStackPermission(mContext); try { mNetdService.setIPv6AddrGenMode(iface, mode); } catch (RemoteException e) {