Skip to main content

Overview

AndroidManifest.xml is the application’s central configuration file. Misconfigurations here introduce vulnerabilities at the OS level, before a single line of application code runs. Most findings are static and detectable via apktool or manual review.

Extract Manifest from APK

Or with aapt:

Debuggable Flag Enabled

MASWE-0067 · MASVS-RESILIENCE: owasp.org/MASWE-0067 android:debuggable="true" allows any process to attach a debugger to the app via ADB, even on non-rooted devices. Vulnerable:
Impact: attacker can attach jdb, dump memory, bypass logic, extract secrets at runtime. Check:
Exploit:

Backup Enabled

MASWE-0004 · MASVS-STORAGE: owasp.org/MASWE-0004 android:allowBackup="true" (default) allows full app data extraction without root via adb backup. Vulnerable:
Extract backup:
Fix: android:allowBackup="false" or use android:fullBackupContent rules to exclude sensitive files.

Exported Components

MASWE-0062 / 0063 / 0064 · MASVS-PLATFORM: 0062 · 0063 · 0064 Activities, Services, Receivers, and Providers are exported to other apps when:
  • android:exported="true" is set explicitly, or
  • an <intent-filter> is declared (implicit export on API < 31)

Exported Activity

Exploit: launch directly:

Exported Service

Exploit:

Exported Broadcast Receiver

Exploit:

Exported Content Provider

Exploit: query data:

Cleartext Traffic Allowed

MASWE-0050 · MASVS-NETWORK: owasp.org/MASWE-0050 android:usesCleartextTraffic="true" permits HTTP connections. All traffic can be intercepted on the same network. Vulnerable:
Also check res/xml/network_security_config.xml for domain-specific cleartext allowances:
Intercept with Burp/mitmproxy after setting the proxy. No certificate bypass needed for plain HTTP.

User CA Trusted in Network Security Config

MASWE-0286 · MASVS-NETWORK: owasp.org/MASWE-0286 Allowing user-installed CAs in the Network Security Config makes SSL interception trivial, no root required.
The manifest links it:
Impact: attacker installs their CA → intercepts all TLS traffic.
MASWE-0058 · MASVS-PLATFORM: owasp.org/MASWE-0058 Deep links declared without proper validation allow other apps or browsers to trigger internal activities with attacker-controlled data. Vulnerable: no verification:
Exploit:
Secure alternative: use App Links (android:autoVerify="true" + HTTPS scheme) so the OS verifies domain ownership before accepting the link.

Task Affinity / StrandHogg

MASWE-0057 · MASVS-PLATFORM: owasp.org/MASWE-0057 Default taskAffinity combined with launchMode="singleTask" and allowTaskReparenting="true" enables the StrandHogg attack, a malicious app hijacks the foreground of the target app when the user launches it. Vulnerable:
Fix: set android:taskAffinity="" to disable reparenting, or android:launchMode="singleInstance".

Insufficient Permission Declarations

MASWE-0117 · MASVS-PRIVACY: owasp.org/MASWE-0117 Over-requested permissions increase the attack surface and privacy exposure. Check all declared permissions:
Look for sensitive permissions that may not be required:
Also check for custom permissions with weak protection level:
Fix: use android:protectionLevel="signature" for internal permissions shared between apps of the same developer.

Target and Min SDK Version

MASWE-0077 / 0078 · MASVS-CODE: 0077 · 0078 Low minSdkVersion exposes the app on older Android versions that lack modern security features. Low targetSdkVersion disables OS-level mitigations.

References


Quick Checklist