Prevent intent defined in AccountPreference from leaking access
Intent defined in AccountPreferences can grant Settings protected ContentProviders' access to authenticator app. We'll explicitly set an empty ClipData to avoid being used for unexpected access grant. Test: manual, refer to #comment5 in bug for repro steps Bug: 220733496 Change-Id: I85c22c9a7d72b8a55472d366d8adb6a75ac5c8a5
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.settings.accounts;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AuthenticatorDescription;
|
||||
import android.content.ClipData;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
@@ -164,6 +165,9 @@ public class AccountTypePreferenceLoader {
|
||||
* exploiting the fact that settings has system privileges.
|
||||
*/
|
||||
if (isSafeIntent(pm, prefIntent, acccountType)) {
|
||||
// Explicitly set an empty ClipData to ensure that we don't offer to
|
||||
// promote any Uris contained inside for granting purposes
|
||||
prefIntent.setClipData(ClipData.newPlainText(null, null));
|
||||
mFragment.getActivity().startActivityAsUser(
|
||||
prefIntent, mUserHandle);
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user