Android security tags, read closely by Lightrion

CVE-2024-40659 AI-generated analysis

platform/packages/modules/RemoteKeyProvisioning (rkpdapp, RemoteProvisioningService); companion permission definition in platform/frameworks/base core/res/AndroidManifest.xml (Android 15)

AI-generated: written from the bulletin and the fixing diffs by claude-fable-5-1, then checked against the code by claude-opus-5-5 (4 corrections). Verify against the commit before relying on it.

Restricts the exported rkpdapp RemoteProvisioningService so that only system_server (SYSTEM_UID) or rkpdapp itself can use the getRegistration API. It does this by adding a BIND_RKP_SERVICE permission to the service in the manifest and a calling-UID check in the binder implementation.

Root cause

In app/AndroidManifest.xml the service .service.RemoteProvisioningService was declared android:exported="true" with an intent-filter for com.android.rkpdapp.IRemoteProvisioning and had no android:permission attribute. Its IRemoteProvisioning.Stub implementation in RemoteProvisioningService.java did not check who was calling. Any process could therefore bind to the service and reach the getRegistration path, which goes on to call ServiceManagerInterface.getInstance(irpcName). The new error message shows this API was meant only for system_server and rkpdapp itself. The bulletin classifies the impact as DoS (High).

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2024 · Findings