From cb7df6cd279e4dbe305cb5b186624893298d5481 Mon Sep 17 00:00:00 2001 From: Rhed Jao Date: Mon, 23 Aug 2021 11:42:36 +0800 Subject: [PATCH] Fix side channel disclosure via add or remove permission api The application can read installed packages without requiring any permission via PackageManager#addPermission or PackageManager#removePermission API. The different messages of security exception were thrown from the API for the application to read installed packages information. This CL used the same exception message in the enforcePermissionTree to fix the issue. Bug: 186405104 Bug: 187408450 Test: Cannot reproduce vai PoC application Change-Id: I80b5c23c56b1652fdf6321cfdde12a4efa087163 --- .../java/com/android/server/pm/permission/Permission.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/pm/permission/Permission.java b/services/core/java/com/android/server/pm/permission/Permission.java index b1b46af8a6e7f..11aed8d776466 100644 --- a/services/core/java/com/android/server/pm/permission/Permission.java +++ b/services/core/java/com/android/server/pm/permission/Permission.java @@ -497,13 +497,10 @@ public final class Permission { if (permissionTree.getUid() == UserHandle.getAppId(callingUid)) { return permissionTree; } - throw new SecurityException("Calling uid " + callingUid - + " is not allowed to add to permission tree " - + permissionTree.getName() + " owned by uid " - + permissionTree.getUid()); } } - throw new SecurityException("No permission tree found for " + permissionName); + throw new SecurityException("Calling uid " + callingUid + + " is not allowed to add to or remove from the permission tree"); } @Nullable