☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-27599

CVE-2025-27599 Improper Access Control in Element
📅 PUBLISHED: 2025-04-18 15:49 UTC 🔄 UPDATED: 2026-09-23 20:26 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.36%
👁️
0.36% probability
9.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-27599 is a medium-severity vulnerability affecting the Element X Android client (versions prior to 25.04.2). The flaw allows a crafted hyperlink on a webpage, or a locally installed malicious app, to force the Element X application to load a webpage with similar permissions to Element Call and automatically grant it temporary access to the device's microphone and camera. This is a classic UI redressing / permission bypass issue, exploiting the trust relationship between the Element X app and its embedded WebView or intent handling for Element Call.

The vulnerability has a CVSS score of 6.5 (Medium) and an EPSS score of 0.0%, indicating low exploitation likelihood in the wild at the time of analysis. No public proof-of-concept (PoC) or exploit code is available. The vendor (Element) has released a patch in version 25.04.2.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is specific to the Android client (Element X Android). It is not a package dependency issue (NPM, PyPI, Go, Ruby). The risk is primarily to end-users who may be tricked into clicking a malicious link or installing a malicious app that exploits the permission delegation flaw.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
  • Base Score: 6.5 (Medium)
  • Attack Vector (AV): Network (N) – The attack is initiated via a hyperlink or a locally installed app.
  • Attack Complexity (AC): Low (L) – No special conditions required beyond user interaction.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – The victim must click the link or open the malicious app.
  • Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same (Element X).
  • Confidentiality (C): Low (L) – Limited access to microphone/camera data.
  • Integrity (I): Low (L) – Potential to inject malicious content via the loaded webpage.
  • Availability (A): Low (L) – Could cause denial of service by exhausting permissions.

Threat Level: Medium. The attack requires user interaction, but the impact (unauthorized access to microphone/camera) is significant for privacy.

Deep Dive & Mechanics

The vulnerability resides in how Element X Android handles intents and WebView permissions for the Element Call feature. Element Call is a separate component that requires microphone and camera permissions. The flaw allows a malicious actor to craft a hyperlink (e.g., intent://... or a custom URL scheme) that, when clicked, opens a webpage within the Element X app's WebView. This webpage is granted the same permissions as Element Call, including temporary access to the microphone and camera.

Attack Flow:

  1. The attacker crafts a malicious hyperlink (e.g., elementx://malicious.link) or a locally installed app sends a malicious intent.
  2. The victim clicks the link or opens the app.
  3. Element X processes the intent and loads the attacker-controlled webpage in a WebView.
  4. Due to improper permission scoping, the WebView inherits the permissions of Element Call.
  5. The attacker's webpage can then access the microphone and camera without further user consent.

Root Cause: The application does not properly restrict the origin of WebView content when handling intents related to Element Call. It trusts any URL loaded via the intent mechanism, allowing a malicious page to inherit sensitive permissions.

Vulnerable vs. Patched Code

No specific code diff is available from public sources. However, based on the advisory, the patch (version 25.04.2) likely involves:

  • Vulnerable: The intent handler for Element Call does not validate the origin of the URL being loaded. It grants permissions to any webpage loaded via the intent.
  • Patched: The intent handler now validates that the URL being loaded is from a trusted domain (e.g., call.element.io) or uses a more restrictive permission model that does not automatically grant microphone/camera access to arbitrary webpages.

Hypothetical Code Snippet (Vulnerable):

// Vulnerable: No origin check
Intent intent = getIntent();
String url = intent.getDataString();
webView.loadUrl(url);
webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onPermissionRequest(PermissionRequest request) {
        request.grant(request.getResources());
    }
});

Hypothetical Code Snippet (Patched):

// Patched: Origin validation
Intent intent = getIntent();
String url = intent.getDataString();
if (url != null && url.startsWith("https://trusted.element.call")) {
    webView.loadUrl(url);
    // Still require user consent for permissions
    webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onPermissionRequest(PermissionRequest request) {
            // Show dialog to user
            if (userConsented) {
                request.grant(request.getResources());
            } else {
                request.deny();
            }
        }
    });
} else {
    // Reject untrusted URLs
    finish();
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Element X Android version < 25.04.2 installed on a test device.
  • A web server to host the malicious page.
  • (Optional) A malicious Android app to send intents.

Exploitation Steps:

  1. Craft the Malicious Link: Create a hyperlink that uses the Element X custom URL scheme (e.g., elementx://attacker.com/malicious.html).
  2. Host the Malicious Page: On your web server, host an HTML page that requests microphone and camera access:
    <!DOCTYPE html>
    <html>
    <head>
        <title>Malicious Page</title>
    </head>
    <body>
        <h1>Click to Start Call</h1>
        <button onclick="startCapture()">Start</button>
        <script>
            async function startCapture() {
                try {
                    const stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: true });
                    // Stream captured - attacker can now record
                    alert('Access granted!');
                } catch (e) {
                    alert('Access denied: ' + e.message);
                }
            }
        </script>
    </body>
    </html>
    
  3. Deliver the Link: Send the link to the victim via email, SMS, or social engineering.
  4. Trigger: When the victim clicks the link, Element X opens the malicious page in its WebView, which automatically grants microphone/camera access (due to the vulnerability).
  5. Exfiltrate Data: The malicious page can stream audio/video to the attacker's server.

Alternative (Malicious App):

  • Develop a simple Android app that sends an intent to Element X with the malicious URL.
  • The app does not need any special permissions itself.

Blue Team

Detection:

  • Monitor for unusual intent calls to Element X from untrusted apps.
  • Look for WebView loads of non-element.io domains within the Element X process.
  • Use network monitoring to detect streaming of audio/video data to unknown servers.

Hunting:

  • Search for logs containing onPermissionRequest events in Element X.
  • Check for recently installed apps that may be sending malicious intents.

Mitigation:

  • Immediately update Element X to version 25.04.2 or later.
  • Educate users not to click on suspicious links, especially those using custom URL schemes.
  • Implement app permission controls on Android to restrict intent handling.

Indicators of Compromise (IOCs)

  • Network:
    • Connections to domains not related to element.io or matrix.org from the Element X app.
    • Unusual WebSocket or RTC streams from the device.
  • File System:
    • No specific file-based IOCs.
  • Process:
    • Element X process loading WebView with URLs containing getUserMedia requests.
  • Logs:
    • Android logcat entries showing PermissionRequest granted for microphone/camera without user interaction.

Detection Engineering

YARA Rule

rule CVE_2025_27599_ElementX_Android {
    meta:
        description = "Detects potential exploitation of CVE-2025-27599 in Element X Android"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-27599"
    strings:
        $s1 = "elementx://" ascii wide nocase
        $s2 = "getUserMedia" ascii wide nocase
        $s3 = "PermissionRequest" ascii wide nocase
    condition:
        any of ($s1) and any of ($s2) and any of ($s3)
}

Sigma Rule

title: CVE-2025-27599 - Element X Android Permission Bypass
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit CVE-2025-27599 via malicious intents or links
author: Valters IT
date: 2025-04-10
logsource:
    product: android
    service: logcat
detection:
    selection:
        - EventID: "PermissionRequest"
        - Message|contains: "elementx://"
        - Message|contains: "getUserMedia"
    condition: selection
falsepositives:
    - Legitimate use of Element Call
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-27599 - Element X Android Malicious Link"; flow:to_server,established; content:"elementx://"; http_uri; content:"getUserMedia"; http_uri; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Update Element X Android to version 25.04.2 or later. This is the only official patch.
  2. User Education: Inform users not to click on links from untrusted sources, especially those that open in Element X.
  3. App Permissions: On Android, review app permissions and disable "Install unknown apps" for untrusted sources.

Long-Term Measures:

  • Code Review: Ensure all intent handlers validate the origin of URLs before loading them in WebViews.
  • Permission Scoping: Implement strict permission scoping so that WebViews do not inherit permissions from other components.
  • Security Testing: Conduct regular penetration testing on Android intent handling and WebView security.

Workarounds (if patching is not possible):

  • Disable the Element Call feature temporarily.
  • Use a firewall to block outbound connections from Element X to untrusted domains.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-27599/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.