Google's security researchers hunted for bugs in Samsung's Galaxy S6 Edge phone as part of an experiment to see how vulnerable the code that manufacturers add to Android can be. It's pretty bad.
The researchers found 11 vulnerabilities in Samsung's code that could be exploited to create files with system privileges, steal the user's emails, execute code in the kernel and escalate the privilege of unprivileged applications.
"Overall, we found a substantial number of high-severity issues, though there were some effective security measures on the device which slowed us down," the security researchers said in a blog post. "The weak areas seemed to be device drivers and media processing. We found issues very quickly in these areas through fuzzing and code review."
There were also three high-impact logic flaws that were easy to find and exploit.
One of them was a path traversal vulnerability in a Samsung service called WifiHs20UtilityService. This service, which runs with system privileges, scans for the existence of a ZIP archive file in a specific location on the storage partition and unpacks it. By taking advantage of the flaw an attacker could cause system files to be written in unintended locations.
Another vulnerability was located in the Samsung Email client, which didn't check for authentication when handling intents.
Intents allow applications to pass instructions to one another inside the Android OS. Because the Samsung email client did not authenticate intents, an unprivileged application could instruct it to forward all of the user's emails to a different address.
Multiple issues were discovered in the drivers and image parsing components that were added by Samsung and are not part of vanilla Android. Three of these flaws could be exploited by simply downloading an image on the device.
The goal of the experiment, which lasted a week, was to see if the security mechanisms built into Android could prevent the exploitation of vulnerabilities in manufacturer-specific code.
SELinux, a defense mechanism present in Android by default, made it more difficult to attack the device, the researchers said. However, there were three bugs that enabled exploits to disable SELinux, so it's not effective in all cases.
All of the discovered issues were reported to Samsung, which fixed them before Google's typical 90-day disclosure deadline, except for three that have lower severity and remain unpatched.
"It is promising that the highest severity issues were fixed and updated on-device in a reasonable time frame," the Google researchers said.
Android's code has its own vulnerabilities, which are routinely discovered by security researchers, but Google has built platform-wide defenses and access controls with the goal of making exploitation harder.
Third-party researchers have long warned that the modifications and additions made by device manufacturers to the OS often decrease or defeat the built-in defenses.