CVE-2020-0102

7.8 HIGH

📋 TL;DR

This vulnerability allows local privilege escalation on Android devices through an out-of-bounds write in the Bluetooth GATT server component. An attacker with user execution privileges could exploit this to gain elevated system access without requiring user interaction. Affects Android versions 8.0 through 10.

💻 Affected Systems

Products:
  • Android
Versions: 8.0 through 10
Operating Systems: Android
Default Config Vulnerable: ⚠️ Yes
Notes: Requires Bluetooth to be enabled. Devices must have the vulnerable GATT server component active.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete device compromise allowing attacker to execute arbitrary code with system privileges, potentially installing persistent malware or accessing sensitive data.

🟠

Likely Case

Local privilege escalation allowing malicious apps to bypass sandbox restrictions and access system resources or other apps' data.

🟢

If Mitigated

Limited impact if devices are patched, have Bluetooth disabled, or run security software that detects exploitation attempts.

🌐 Internet-Facing: LOW - This is a local vulnerability requiring physical or network proximity for Bluetooth exploitation.
🏢 Internal Only: MEDIUM - Could be exploited by malicious apps or attackers with physical access to devices on internal networks.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Requires user execution privileges initially. Exploitation involves crafting malicious Bluetooth GATT packets to trigger the out-of-bounds write.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Android Security Patch Level 2020-05-01 or later

Vendor Advisory: https://source.android.com/security/bulletin/2020-05-01

Restart Required: Yes

Instructions:

1. Check for Android system updates in Settings > System > Advanced > System update. 2. Install the May 2020 security patch or later. 3. Reboot device after installation.

🔧 Temporary Workarounds

Disable Bluetooth

android

Turn off Bluetooth to prevent exploitation via the vulnerable GATT server component

adb shell settings put global bluetooth_on 0
Settings > Connected devices > Connection preferences > Bluetooth > Toggle off

🧯 If You Can't Patch

  • Disable Bluetooth when not in use to reduce attack surface
  • Restrict installation of untrusted applications to prevent initial user execution privilege acquisition

🔍 How to Verify

Check if Vulnerable:

Check Android version and security patch level in Settings > About phone > Android version and Security patch level

Check Version:

adb shell getprop ro.build.version.security_patch

Verify Fix Applied:

Verify security patch level is 2020-05-01 or later in Settings > About phone

📡 Detection & Monitoring

Log Indicators:

  • Unusual Bluetooth GATT server activity
  • Process privilege escalation attempts
  • Crash logs from gatt_server process

Network Indicators:

  • Malformed Bluetooth GATT packets
  • Unusual Bluetooth connection patterns

SIEM Query:

source="android_logs" AND (process="gatt_server" AND error="out_of_bounds") OR (event="privilege_escalation" AND component="bluetooth")

🔗 References

📤 Share & Export