Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3f2d7c2 authored by Grace Jia's avatar Grace Jia
Browse files

Fix security vulnerability of TelecomManager#getPhoneAccountsForPackage

Check calling package and READ_PRIVILEGED_PHONE_STATE to avoid potential
PII expotion.

Bug: 153995334
Test: atest TelecomUnitTests:TelecomServiceImpl
Change-Id: Ie834633dc4031d19af90e922ef0f111c3c8d7cb2
(cherry picked from commit 9d8d0cf3)
parent 24cf84d6
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -226,6 +226,23 @@ public class TelecomServiceImpl {

        @Override
        public List<PhoneAccountHandle> getPhoneAccountsForPackage(String packageName) {
            //TODO: Deprecate this in S
            try {
                enforceCallingPackage(packageName);
            } catch (SecurityException se1) {
                EventLog.writeEvent(0x534e4554, "153995334", Binder.getCallingUid(),
                        "getPhoneAccountsForPackage: invalid calling package");
                throw se1;
            }

            try {
                enforcePermission(READ_PRIVILEGED_PHONE_STATE);
            } catch (SecurityException se2) {
                EventLog.writeEvent(0x534e4554, "153995334", Binder.getCallingUid(),
                        "getPhoneAccountsForPackage: no permission");
                throw se2;
            }

            synchronized (mLock) {
                final UserHandle callingUserHandle = Binder.getCallingUserHandle();
                long token = Binder.clearCallingIdentity();