Skip to main content

Stoat for Android CVE-2026-57848

| EUVDEUVD-2026-45395 MEDIUM
Improper Export of Android Application Components (CWE-926)
2026-07-18 VulnCheck
6.8
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
6.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.5 MEDIUM

AV:L because exploitation requires local intent dispatch; PR:N as no Android permissions are needed to target exported activities; UI:R for the required victim channel-selection step; C:H for full auth token and database disclosure with no integrity or availability impact.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
P
Scope
X

Lifecycle Timeline

4
CVSS changed
Jul 18, 2026 - 20:22 NVD
5.5 (MEDIUM) 6.8 (MEDIUM)
Source Code Evidence Fetched
Jul 18, 2026 - 20:01 vuln.today
Analysis Generated
Jul 18, 2026 - 20:01 vuln.today
CVE Published
Jul 18, 2026 - 19:15 cve.org
MEDIUM 5.5

DescriptionCVE.org

Stoat for Android exports the chat.stoat.activities.ShareTargetActivity component (reachable to any process on the device via the android.intent.action.SEND intent) and accepts the file to share as a URI supplied through the android.intent.extra.STREAM extra. The activity does not validate or filter the incoming URI before using it as the outgoing attachment, so a caller can pass a file:// URI pointing at the application's own internal storage (for example /data/data/chat.revolt/databases/revolt.db, cached authentication token files, or preferences) and have the app treat that internal file as a user-selected attachment. An attacker who can invoke intents on the victim's device (via ADB access, a co-installed malicious application, or any other route that reaches Android's intent dispatch) can launch ShareTargetActivity with such a URI and cause the victim, on a single channel-selection interaction, to send the internal file to any Stoat channel or user of the attacker's choosing. The composer displays the attachment as \"attachment\" with no filename indication, so the victim has no visible signal that the file being sent is their own internal application data. Consequences include disclosure of the local Stoat database (message history, contact list, cached content), disclosure of authentication tokens permitting full account takeover, and disclosure of any other file readable by the app process.

AnalysisAI

Internal file disclosure in Stoat for Android allows any process capable of local intent dispatch to exfiltrate the app's internal storage - including the local message database and cached authentication tokens - through an unvalidated URI passed to the exported ShareTargetActivity. The attacker triggers a single, deceptive share interaction in which the victim selects a destination channel while the Stoat composer conceals the true nature of the attachment, showing only 'attachment' with no filename. No public exploit code has been identified and this CVE is not listed in CISA KEV; the upstream fix is confirmed via commit 50d5f5143940809ebb5a61e5f507c956c33aa970, though a specific patched release version is not independently confirmed.

Technical ContextAI

CWE-926 (Improper Export of Android Application Components) is the root cause: ShareTargetActivity is declared with an android.intent.action.SEND intent filter and no export restriction such as android:exported='false' or a signature-level permission requirement, making it reachable by any process on the device. Android's intent system allows callers to populate extras freely, and the activity forwarded the android.intent.extra.STREAM URI directly to its outgoing attachment logic without scheme or authority validation. Because file:// URIs resolve against the app process's filesystem context, a caller can reference /data/data/chat.revolt/databases/revolt.db or token cache files - all readable by the Stoat process. Affected product per CPE: cpe:2.3:a:stoatchat:stoat_for_android:*:*:*:*:*:*:*:*. The fix in commit 50d5f5 introduces isAcceptableShareUri(), which rejects any URI whose scheme is not content://, and additionally blocks content:// URIs whose authority matches the app's own package name or its FileProvider suffix, eliminating the self-exfiltration vector.

RemediationAI

The primary fix is to update to a build of Stoat for Android that includes commit 50d5f5143940809ebb5a61e5f507c956c33aa970, which adds URI scheme enforcement in ShareTargetActivity - rejecting any non-content:// URI and blocking content:// URIs whose authority matches the app's own package or FileProvider. Users should verify with the project at https://github.com/stoatchat/for-android that their installed build is at or after this commit; the patch is referenced as available from the vendor but a specific release version number is not confirmed in the available data. As a compensating control on managed device fleets, restricting installation of untrusted or unreviewed applications via MDM policy reduces the population of apps that could dispatch the malicious intent - note this does not eliminate the vector if ADB access is available or if a trusted but compromised app is already installed. Restricting or disabling ADB access on end-user devices narrows the attack surface further. Neither workaround fully closes the vulnerability; patching to the fixed commit is the only complete remediation.

Share

CVE-2026-57848 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy