Fix vulnerability in AttributionSource due to incorrect Binder call

AttributionSource uses Binder.getCallingUid to verify the UID of the
caller from another process. However, getCallingUid does not always
behave as expected. If the AttributionSource is unparceled outside a
transaction thread, which is quite possible, getCallingUid will return
the UID of the current process instead. If this is a system process,
the UID check gets bypassed entirely, meaning any uid can be provided.

This patch fixes the vulnerability by emptying out the state of the
AttributionSource, so that the service checking its credentials will
fail to give permission to the app.

Bug: 267231571
Test: v2/android-virtual-infra/test_mapping/presubmit-avd
Merged-In: Ic301a8518b8e57e1c9a2c9f2f845e51dca145257
Change-Id: Ic985afdb5e4495f2e051e6d0d62d39c6660c585e
1 file changed