
Disclosure of 7 Android and Google Pixel vulnerabilities
Disclosure of 7 Android and Google Pixel Vulnerabilities | Oversecured Blog
Oversecured discloses seven Android vulnerabilities, two of them Pixel-specific, all reported to Google and fixed except one low-severity WebView case. They are the Camera geolocation leak (CVE-2024-0017), a VPN bypass list change (CVE-2023-21383), a Bluetooth permission check flaw (CVE-2024-34719), the WorkSource parcel mismatch (CVE-2023-20963, exploited in the wild by the Pinduoduo app), Device Admin HTML injection (CVE-2021-0600) and a ContentProvider.openFile() caller-context bypass (CVE-2023-21292). Each has root cause and PoC code.
What it is
Oversecured's October 2024 or later roundup (the page is undated, but it cites a Bluetooth fix on 1 November 2024) covers seven Android vulnerabilities it reported to Google. Five are rated High with CVEs. The sixth, a WebView file chooser issue, was downgraded to Low and has no CVE. The seventh is the WorkSource parcel mismatch, which has a CVE but no mechanism in this post. The page says two issues affect Pixel devices only and the rest affect all Android vendors.
How it works
- Camera geolocation, CVE-2024-0017 (Pixel).
CameraActivity.shouldUseNoOpLocation()picksLegacyLocationProviderwhengetCallingPackage()returns null. That happens whenever the caller usesstartActivity()instead ofstartActivityForResult(). An app without location permission can launchIMAGE_CAPTUREwith anoutputextra pointing at its own content provider, then read GPS EXIF tags from the photo. Reported 31 May 2023, fixed 20 December 2023. - VPN bypass list, CVE-2023-21383 (Pixel).
com.google.android.settings.vpn2.AppBypassBroadcastReceiverin Settings is guarded bycom.google.android.wildlife.permission.VPN_APP_EXCLUSION_LAUNCHandADVANCED_VPN_CONFIG, which no system app declares. A malicious app can declare them itself and then send a broadcast that edits the bypass lists. Only system apps can be added (the page's example is Chrome). Reported 2 June 2023, fixed 1 December 2023. - Bluetooth, CVE-2024-34719. Permission checks ran client-side in
BluetoothAdapter. In thecom.android.bluetoothservice, the check methods build a newAttributionSourcefrom the service's own context and chain the caller's attacker-controlled one withsetNext. A raw Binder call with a nullattributionSourcetherefore passes with system privileges. The PoC callsIBluetooth.setName()(transaction 7). The page says most Bluetooth methods, including privileged ones and vendor extensions, are affected. Reported 18 August 2022, fixed 1 November 2024. - WorkSource, CVE-2023-20963. A parcel/unparcel mismatch lets an app launch arbitrary components of arbitrary apps as the system, which skips
exportedand permission checks. The post defers the technical detail to Google Project Zero. The Pinduoduo app (Temu's developer) exploited it from 4 March 2022 (version 6.2.0) until the code was removed on 22 February 2023 (version 6.49.0). Reported 17 February 2022, fixed 1 March 2023. - Device Admin HTML injection, CVE-2021-0600. Settings passes a
CharSequenceextra,android.app.extra.ADD_EXPLANATION, to theProfileOwnerAddscreen without converting it to a plainString. ASpannedobject built withHtml.fromHtml()renders formatted text in the admin request. Reported 29 January 2021, fixed 24 June 2021. ContentProvider.openFile(), CVE-2023-21292.IActivityManager.openContentUri()does not preserve the caller's context. Providers that checkBinder.getCallingUid() == 1000orcheckCallingPermission()see the system as the caller. The check does not help providers protected byexportedor manifest permissions. Reported 19 June 2022, fixed 1 August 2023.- WebView file chooser (no CVE, Low, unfixed).
FileChooserParams.createIntent()produces an implicit intent. Any app can answer it with afile://URI to the host app's private files, andparseResult()andonReceiveValue()do not check it. The PoC returnsfile:///data/user/0/com.victim/files/secret.txt. Reported 4 November 2023.
Preconditions / Affected
- The Camera and VPN issues affect Pixel only. The others affect all Android devices.
- The WebView issue matters when the page is attacker-controlled, or when the app forwards picked file contents to third parties such as email or cloud storage.
- The
openFile()issue matters for providers, including AOSP and Google ones, that do their own caller checks.
What to do
The page gives no patch levels, only fix dates. Devices patched after those dates (the latest is 1 November 2024, for Bluetooth) should have the fixes for the six patched issues. App developers using onShowFileChooser() are unprotected by Google and must validate returned URIs themselves. The page does not state this as advice.
Caveats
- Google first closed the WebView case as a developer error and the
openFile()case as "Works as designed". The second was reopened and fixed after public disclosure. - Oversecured notes the WorkSource report sat over a year before patching, and only after in-the-wild exploitation was known.
- The post ends with a pitch for Oversecured's scanner.
Organisations named here
- Pinduoduo
- Temu
CVEs named here
- CVE-2024-0017
- CVE-2023-21383
- CVE-2024-34719
- CVE-2023-20963
- CVE-2021-0600
- CVE-2023-21292
Technologies named here
- Android
- Google Project Zero
- VPN
- Oversecured
- Android Settings app (com.android.settings): HTML injection on Device Admin request screen, CVE-2021-0600
- Android WebView: default WebChromeClient.FileChooserParams file picker flow (no CVE, severity Low, not fixed)
- Bluetooth
- CNN investigation
- Google Pixel
- Google Pixel devices (Camera app com.android.camera2, CVE-2024-0017; Settings VPN bypass, CVE-2023-21383)
- Google Vulnerability Disclosure Program (VDP)
- Oversecured Mobile Application Vulnerability Scanner
- Temu / Pinduoduo app (versions 6.2.0 to 6.49.0 contained the exploit)
- WebView
Techniques named here
- Confused deputy
- Improper Neutralization of Input During Web Page Generation
- Binder transaction with null attributionSource
- Context proxying via IActivityManager.openContentUri()
- HTML injection via CharSequence/Spanned
- Implicit intent interception of file chooser
- Missing calling-package check in intent handling
- Parcel/unparcel mismatch exploitation
- Undeclared permission abuse
Threat actors named here
- Pinduoduo app (current developer of the Temu app): exploited CVE-2023-20963 in in-the-wild attacks from March 4, 2022 (version 6.2.0) until the malicious code was removed on February 22, 2023 (version 6.49.0)
Related in Mobile Security
thomasbuilds/Spectre
