DEFCON 2018: Vulnerable Out of the Box - An Evaluation of Android Carrier Devices
Overview
Pre-installed apps and firmware pose a risk due to vulnerabilities that can be pre-positioned on a device, rendering the device vulnerable on purchase. To quantify the exposure of the Android end-users to vulnerabilities residing within pre-installed apps and firmware, we analyzed a wide range of Android vendors and carriers using devices spanning from low-end to flagship. Our primary focus was exposing pre-positioned threats on Android devices sold by United States (US) carriers, although our results affect devices worldwide. We provided details of vulnerabilities in devices from all four major US carriers, as well two smaller US carriers, among others. The vulnerabilities we discovered on devices offered by the major US carriers are the following: arbitrary command execution as the system user, obtaining the modem logs and logcat logs, wiping all user data from a device (i.e., factory reset), reading and modifying a user’s text messages, sending arbitrary text messages, getting the phone numbers of the user’s contacts, and more. All of the aforementioned capabilities are obtained outside of the normal Android permission model.
Mitigation
Utilizing Kryptowire’s automated firmware scanning tools we are able to provide up to date detection of these vulnerabilities as new firmware and devices are introduced into your organization. To request the full report and/or more information about our firmware scanning service please click the link below.
Sample Exploit Videos
Locking a user out.
A sample app is used to lock a user out of their device without any permissions generally resulting in the user performing a factory reset in order to recover their device.
Sample Affected Devices
OEM | Model | OS Version | Description | Attack Requirements | Purchase Location | Target | Build Fingerprint |
---|---|---|---|---|---|---|---|
ZTE | ZMAX Pro | 6.0.1 | Send text messages | Local app on the device without any permissions | Amazon (Available on TMobile) | Pre-installed app with exposed interface | ZTE/P895T20/urd:6.0.1/MMB29M/20170418.114928:user/release-keys |
ZTE | ZMAX Pro | 6.0.1 | Obtain all the text messages of the user and also insert, modify, and delete text messages | Local app on the device without any permissions | Amazon (Available on TMobile) | Pre-installed app with exposed interface | ZTE/P895T20/urd:6.0.1/MMB29M/20170418.114928:user/release-keys |
ZTE | ZMAX Champ | 6.0.1 | A pre-installed app allows any app on the device to cause the device to get stuck in an unfixable recovery bootloop. | Local app on the device without any permissions | Wal-Mart (Total Wireless device) | Pre-installed app with exposed interface | ZTE/Z917VL/fortune:6.0.1/MMB29M/20170327.120922:user/release-keys |
ZTE | ZMAX Champ | 6.0.1 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device without any permissions | Wal-Mart (Total Wireless device) | Pre-installed app with exposed interface | ZTE/Z917VL/fortune:6.0.1/MMB29M/20170327.120922:user/release-keys |
ZTE | ZMAX Pro | 6.0.1 | Obtain the numbers of contacts and numbers of people that the user has texted | Local app on the device without any permissions | Amazon (Available on TMobile) | Pre-installed app with exposed interface | ZTE/P895T20/urd:6.0.1/MMB29M/20170418.114928:user/release-keys |
ZTE | Blade Spark | 7.1.1 | Obtain the logcat log which get written to the sdcard. This can be mined for user data. This does leave a sticky notification. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | AT&T | Modified Android OS | ZTE/Z971/peony:7.1.1/NMF26V/20171129.143111:user/release-keys |
ZTE | Blade Vantage | 7.1.1 | A pre-installed app allows any app on the device to make the system write the modem log to the sdcard. This contains the send and received text messages and the call data. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | Verizon | Modified Android OS | ZTE/Z839/sweet:7.1.1/NMF26V/20180120.095344:user/release-keys |
Vivo | V7 | 7.1.2 | Record the screen and write it to app's private directory. A notification and floating icon pop up initiatlly, but these can be quickly removed. | Local app on the device that does not require any permissions | Vivo Store | Pre-installed app with exposed interface | vivo/1718/1718:7.1.2/N2G47H/compil11021857:user/release-keys |
Vivo | V7 | 7.1.2 | Obtain the kernel log and also the logcat log which get written to the sdcard. This can be mined for user data. This does leave a sticky notification. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | Vivo Store | Pre-installed app with exposed interface | vivo/1718/1718:7.1.2/N2G47H/compil11021857:user/release-keys |
Vivo | V7 | 7.1.2 | Provides the capability to set system properties as the com.android.phone user. With this and vulnerability above, you can caputre the input of the user (where they touch the screen) and the bluetooth snoop log. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | Vivo Store | Pre-installed app with exposed interface | vivo/1718/1718:7.1.2/N2G47H/compil11021857:user/release-keys |
Sony | Xperia L1 | 7.0 | Take screenshot of the screen which can be used to examine the user's notifications. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard and the EXPAND_STATUS_BAR permission is needed to expand the status bar | Amazon | Modified Android OS with exposed interface | Sony/G3313/G3313:7.0/43.0.A.6.49/2867558199:user/release-keys |
SKY | Elite 6.0L+ | 6.0 | Command execution as the system user via old version of Adups software | Local app on the device that does not require any permissions | Micro Center | Pre-installed app with exposed interface | SKY/x6069_trx_l601_sky/x6069_trx_l601_sky:6.0/MRA58K/1482897127:user/release-keys |
Plum | Compass | 6.0 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device that does not require any permissions | Amazon | Pre-installed app with exposed interface | PLUM/c179_hwf_221/c179_hwf_221:6.0/MRA58K/W16.51.5-22:user/release-keys |
Orbic | Wonder | 7.1 | Pairing with the vulnerability above, the user can get the body of text messages and call data since the default messaging apps is in debug mode, so the telephony data is written to the log. The log is written to the sdcard so any app can use the vulnerability above to get this data. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | Best Buy | Pre-installed app with exposed interface | Orbic/RC555L/RC555L:7.1.2/N2G47H/329100b:user/release-keys |
Orbic | Wonder | 7.1.2 | A pre-installed app allows the user to obtain the logcat log that get written to the sdcard continuosly. The logcat log is not available to third-party apps since it contains sensitive user data. The user can start the app with so it will not show up in the recent apps list and then dismiss it by going to the home screen so it will not be accessible to the user. It will continuosly write the log file to the sdcard. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | Best Buy | Pre-installed app with exposed interface | Orbic/RC555L/RC555L:7.1.2/N2G47H/329100b:user/release-keys |
Orbic | Wonder | 7.1.2 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device that does not require any permissions | Best Buy | Modified Android OS with exposed interface | Orbic/RC555L/RC555L:7.1.2/N2G47H/329100b:user/release-keys |
Oppo | F5 | 7.1.1 | Surreptitiously audio record the user and write it to the sdcard. This does require the command execution as system user to copy the recording file. | Local app on the device without any permissions | Oppo Store | Pre-installed app with exposed interface | OPPO/CPH1723/CPH1723:7.1.1/N6F26Q/1513597833:user/release-keys |
Oppo | F5 | 7.1.1 | Command execution as the system user | Local app on the device without any permissions | Oppo Store | Pre-installed app with exposed interface | OPPO/CPH1723/CPH1723:7.1.1/N6F26Q/1513597833:user/release-keys |
Nokia | 6 TA-1025 | 7.1.1 | Take screenshot of the screen which can be used to examine the user's notifications. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard and the EXPAND_STATUS_BAR permission is needed to expand the status bar | Amazon | Modified Android OS with exposed interface | Nokia/TA-1025_00WW/PLE:7.1.1/NMF26F/00WW_3_32F:user/release-keys |
MXQ | TV Box | 4.4.2 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device that does not require any permissions | Amazon | Modified Android OS with exposed interface | MBX/m201_N/m201_N:4.4.2/KOT49H/20160106:user/test-keys |
MXQ | TV Box | 4.4.2 | Make the device non-functional. The device will not boot properly even after a factory reset. The device can likely be recovered by placing clean firmware images on the sdcard and flashing them. | Local app on the device that does not require any permissions | Amazon | Modified Android OS with exposed interface | MBX/m201_N/m201_N:4.4.2/KOT49H/20160106:user/test-keys |
LG | G6 | 7.0 | Can lock a user out of their own phone (even in safe mode) and the user will be forced to factory reset in recovery mode. The user may be able to unlock the device if they have ADB enabled prior to the locking of the screen and can figure out how to unlock it hich may be difficult for the average user. This acts as a Denial of Service attack and results in data loss if a factory reset occurs. | Local app on the device that does not require any permissions | Amazon | Pre-installed app with exposed interface | lge/lucye_nao_us_nr/lucye:7.0/NRD90U/17265155644e4:user/release-keys |
LG | G6 | 7.0 | Obtain the logcat logs continuosly which are not available to third party apps since they leak senstive user data. The log file can be written to the app's private directory by using path traversal. | Local app on the device and INTERNET permission to send out the data. | Amazon | Pre-installed app with exposed interface | lge/lucye_nao_us_nr/lucye:7.0/NRD90U/17265155644e4:user/release-keys |
LG | G6 | 7.0 | Obtain the kernel log and also the logcat log which get written to the sdcard. This can be mined for user data. It also creates a file on the sdcard containing the phone IMEI and serial number. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | Amazon | Pre-installed app with exposed interface | lge/lucye_nao_us_nr/lucye:7.0/NRD90U/17265155644e4:user/release-keys |
Leagoo | Z5C | 6.0 | Read the last text message from each conversation. The last message will containt the phone number, text body, timestamp, and the contact's name (if any) | Local app on the device that does not require any permissions | Amazon | Pre-installed app with exposed interface | sp7731c_1h10_32v4_bird:6.0/MRA58K/android.20180125.183848:user/release-keys |
Leagoo | P1 | 7.0 | Take screenshot of the screen which can be used to examine the user's notifications. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard and the EXPAND_STATUS_BAR permission is needed to expand the status bar | Leagoo Store | Modified Android OS with exposed interface | LEAGOO/t592_otd_p1/t592_otd_p1:7.0/NRD90M/1508151212:user/release-keys |
Leagoo | P1 | 7.0 | Local root privilege escalation via ADB. The vendor allows read only properties to be modified. They could also peform this behavior to get root privileges. | Physical access to device | Leagoo Store | Modified Android OS | LEAGOO/t592_otd_p1/t592_otd_p1:7.0/NRD90M/1508151212:user/release-keys |
Leagoo | P1 | 7.0 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device that does not require any permissions | Leagoo Store | Pre-installed app with exposed interface | LEAGOO/t592_otd_p1/t592_otd_p1:7.0/NRD90M/1508151212:user/release-keys |
Leagoo | Z5C | 6.0 | Send text messages | Local app on the device that does not require any permissions | Amazon | Pre-installed app with exposed interface | sp7731c_1h10_32v4_bird:6.0/MRA58K/android.20180125.183848:user/release-keys |
Leagoo | Z5C | 6.0 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device that does not require any permissions | Amazon | Pre-installed app with exposed interface | sp7731c_1h10_32v4_bird:6.0/MRA58K/android.20180125.183848:user/release-keys |
Essential | Essential | 7.1.1 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device that does not require any permissions | Amazon (Available on Sprint) | Pre-installed app with exposed interface | essential/mata/mata:7.1.1/NMJ88C/464:user/release-keys & essential/mata/mata:8.1.0/OPM1.180104.166/297:user/release-keys |
Doogee | X5 | 6.0 | Video record of the screen. This capability can be used in a similar way as taking screenshots by opening apps that show the user's messages. The recording is not transparent to the user. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard and the INTERNET permission to send out the data | Amazon | Pre-installed app with exposed interface | DOOGEE/full_hct6580_weg_c_m/hct6580_weg_c_m:6.0/MRA58K/1479906828:user/test-keys |
Coolpad | Revvl Plus | 7.1.1 | Obtain all the text messages of the user and also insert, modify, and delete text messages | Local app on the device without any permissions | TMobile | Pre-installed app with exposed interface | Coolpad/alchemy/alchemy:7.1.1/143.14.171129.3701A-TMO/buildf_nj_02-206:user/release-keys |
Coolpad | Canvas | 7.0 | Provides the capability to set system properties as the com.android.phone user. | Local app on the device without any permissions | Best Buy (Cricket) | Pre-installed app with exposed interface | Coolpad/cp3636a/cp3636a:7.0/NRD90M/093031423:user/release-keys |
Coolpad | Defiant | 7.1.1 | Send text messages | Local app on the device without any permissions | TMobile | Pre-installed app with exposed interface | Coolpad/cp3632a/cp3632a:7.1.1/NMF26F/099480857:user/release-keys |
Coolpad | Revvl Plus | 7.1.1 | Provides the capability to set system properties as the com.android.phone user. | Local app on the device without any permissions | TMobile | Pre-installed app with exposed interface | Coolpad/alchemy/alchemy:7.1.1/143.14.171129.3701A-TMO/buildf_nj_02-206:user/release-keys |
Coolpad | Revvl Plus | 7.1.1 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device without any permissions | TMobile | Pre-installed app with exposed interface | Coolpad/alchemy/alchemy:7.1.1/143.14.171129.3701A-TMO/buildf_nj_02-206:user/release-keys |
Coolpad | Revvl Plus | 7.1.1 | Send text messages | Local app on the device without any permissions | TMobile | Pre-installed app with exposed interface | Coolpad/alchemy/alchemy:7.1.1/143.14.171129.3701A-TMO/buildf_nj_02-206:user/release-keys |
Coolpad | Canvas | 7.0 | Obtain the logcat logs, kernel logs, and tcpdump capture which are written to the sdcard. This leaves a notification active. The logs contain the body of sent and received text messages. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | Best Buy (Cricket) | Pre-installed app with exposed interface | Coolpad/cp3636a/cp3636a:7.0/NRD90M/093031423:user/release-keys |
Coolpad | Defiant | 7.1.1 | A pre-installed app allows any app on the device to wipe all user data via a factory reset. There is no user intervention required and it will result in data loss. | Local app on the device without any permissions | TMobile | Pre-installed app with exposed interface | Coolpad/cp3632a/cp3632a:7.1.1/NMF26F/099480857:user/release-keys |
Coolpad | Defiant | 7.1.1 | Obtain all the text messages of the user and also insert, modify, and delete text messages | Local app on the device without any permissions | TMobile | Pre-installed app with exposed interface | Coolpad/cp3632a/cp3632a:7.1.1/NMF26F/099480857:user/release-keys |
Asus | ZenFone 3 Max | 7.0 | A pre-installed app with an exposed interface allows any app on the phone to obtain a bugreport (kernel log, logcat log, dump of system services (includes text of active notifications), WiFi Passwords, and other system data gets written to the sdcard. The numbers for received and placed telephone calls show up in the log, as well as the sending and receving telephone numbers for text messages. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard | Amazon | Pre-installed app with exposed interface | asus/US_Phone/ASUS_X008_1:7.0/NRD90M/US_Phone-14.14.1711.92-20171208:user/release-keys |
Asus | ZenFone 3 Max | 7.0 | Arbitrary app installation over the internet. Then this app can also be uninstalled after it is run using the same interface. | Local app on the device without any permissions | Amazon | Pre-installed app with exposed interface | asus/US_Phone/ASUS_X008_1:7.0/NRD90M/US_Phone-14.14.1711.92-20171208:user/release-keys |
Asus | ZenFone 3 Max | 7.0 | Take screenshot of the screen which can be used to examine the user's notifications. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard and EXPAND_STATUS_BAR permission is needed to expand the status bar | Amazon | Modified Android OS with exposed interface | asus/US_Phone/ASUS_X008_1:7.0/NRD90M/US_Phone-14.14.1711.92-20171208:user/release-keys |
Asus | ZenFone 3 Max & ZenFone V Live | 7.0 | Command execution as the system user | Local app on the device without any permissions | Verizon & Amazon | Pre-installed app with exposed interface | asus/US_Phone/ASUS_X008_1:7.0/NRD90M/US_Phone-14.14.1711.92-20171208:user/release-keys & asus/VZW_ASUS_A009/ASUS_A009:7.1.1/NMF26F/14.0610.1709.56-20171017:user/release-keys |
Alcatel | A30 | 7.0 | Take screenshot of the screen which can be used to examine the user's notifications. | Local app on the device with the READ_EXTERNAL_STORAGE permission to read from the sdcard and the EXPAND_STATUS_BAR permission is needed to expand the status bar | Amazon | Modified Android OS | TCL/5046G/MICKEY6US:7.0/NRD90M/J63:user/release-keys |
Alcatel | A30 | 7.0 | Local root privilege escalation via ADB. The vendor allows read only properties to be modified. They could also peform this behavior to get root privileges. This was an Amazon Prime exclusive device. | The user needs physical access to the device and needs to bypass the screen-lock if it exists | Amazon | Modified Android OS | TCL/5046G/MICKEY6US:7.0/NRD90M/J63:user/release-keys |
The EU General Data Protection Regulation (GDPR) is in effect as of May 25, 2018. Are your mobile apps GDPR compliant?