Just a month ago, OnePlus was caught collecting personally identifiable data from phone owners through incredibly detailed analytics. While the company eventually reversed course on the data collection, another discovery has been made in the software of OnePlus phones. One developer found an application intended for factory testing, and through some investigation and reverse-engineering, was able to obtain root access using it.

 

The application in question is called 'EngineerMode,' which is intended to be used in factories to confirm that the device is working properly. We have confirmed it is installed on the OnePlus 3, 3T, and 5. It's even included on OxygenOS for the OnePlus One, but not the original CyanogenOS ROM.

The app can diagnose GPS, check the root status, perform a series of automated tests, and more. The developer found that by launching the 'DiagEnabled' activity found in the APK with a specified password, the device could actually be rooted:

After tearing apart the phone's libdoor.so library, he managed to obtain root access through bypassing the escalate and isEscalated methods in the DiagEnabled activity. With the help of a few cybersecurity experts, the required password was discovered, making rooting a OnePlus phone as easy as running a few commands.

He plans to release an app for rooting OnePlus devices sometime today, and we'll update the post when it is released. While this might sound exciting, due to the possibility of obtaining root access without unlocking the phone, this actually has serious security repercussions. While it's likely not possible for any random app to obtain root with this method, as the commands can only be run through ADB, this could be used in conjunction with another vulnerability (like this one) to cause harm.

The chance of this already having been exploited is probably low, but it's still a massive risk to users. Carl Pei, co-founder of OnePlus, has said the company is looking into it:

We've also reached out to OnePlus for comment. In the meantime, you should probably avoid installing any sketchy-looking apps. Hopefully OnePlus will remove the application from its devices with an update, all the way back to the OnePlus One.

UPDATE: 2017/11/14 10:22am PST BY

NowSecure, a mobile security company that helped the developer find the password, has published a more detailed writeup about the backdoor. The post reveals that the poorly-hidden password was in fact "angela," possibly a "Mr. Robot" reference to character Angela Moss.

UPDATE: 2017/11/14 1:48pm PST BY

OnePlus has posted an official statement about the EngineerMode app:

"Yesterday, we received a lot of questions regarding an apk found in several devices, including our own, named EngineerMode, and we would like to explain what it is. EngineerMode is a diagnostic tool mainly used for factory production line functionality testing and after sales support.

We’ve seen several statements by community developers that are worried because this apk grants root privileges. While, it can enable adb root which provides privileges for adb commands, it will not let 3rd-party apps access full root privileges. Additionally, adb root is only accessible if USB debugging, which is off by default, is turned on, and any sort of root access would still require physical access to your device.

While we don't see this as a major security issue, we understand that users may still have concerns and therefore we will remove the adb root function from EngineerMode in an upcoming OTA."

UPDATE: 2017/11/15 2:29pm PST BY

The saga continues, as Qualcomm has now released a statement about the EngineerMode APK:

"After an in-depth investigation, we have determined that the EngineerMode app in question was not authored by Qualcomm. Although remnants of some Qualcomm source code is evident, we believe that others built upon a past, similarly named Qualcomm testing app that was limited to displaying device information. EngineerMode no longer resembles the original code we provided."