CVE-2026-12284
Threat Intelligence Report — CVE-2026-12284
Executive Summary
CVE-2026-12284 is an origin/sender validation flaw (CWE-346) in the Mattermost Desktop App versions 6.2 through 6.2.2.0, where the leaveCall IPC handler fails to validate the IPC sender. This allows a malicious or compromised Mattermost server, or a user with script access to a connected server view, to forcibly disconnect an active call belonging to a different connected server via the desktopAPI.leaveCall IPC message. The impact is limited to low-level availability (call disruption) with no confidentiality or integrity impact; the CVSS base score is 3.7, and no public exploit or Nuclei template exists.
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.
No signup required
Technical Analysis
The Mattermost Desktop App is an Electron-based client that can connect to multiple Mattermost server instances simultaneously (multi-server support). Electron's inter-process communication (IPC) architecture separates the renderer process (web content, i.e., a connected server view) from the main process (native OS integration, window management, and privileged APIs). A preload bridge exposes a set of desktopAPI functions to renderer content so that the web layer can request native operations.
Per the NVD description, the vulnerability resides in the leaveCall handler. The handler accepts a desktopAPI.leaveCall IPC message but does not validate the sender of that message — meaning it does not verify that the calling renderer context is legitimately associated with (and authorized for) the call it is attempting to terminate. This is a textbook origin/sender validation error (CWE-346): trust is placed in the identity of the IPC message source without confirming that source controls the affected resource.
Because the desktop client maintains calls across multiple connected servers, the leaveCall operation is scoped to a specific server's call session. The absence of sender validation means the handler does not check which connected server view originated the request, and therefore processes a leaveCall message against any active call regardless of ownership. A renderer context belonging to Server A can thus issue a leaveCall message that terminates a call belonging to Server B.
Key technical constraints from the data provided:
- Attack vector: Network (AV:N). Delivery is via a malicious/compromised server, or via script execution inside a connected server view.
- Attack complexity: High (AC:H). Exploitation requires either control of a Mattermost server the victim connects to, or script execution capability within a connected server view (e.g., via a crafted message/extension context that yields script access).
- Privileges required: None (PR:N).
- User interaction: None (UI:N).
- Impact: Availability-only, Low (C:N/I:N/A:L). The operation affects call availability; there is no data disclosure or modification described.
The flawed handler is named in the advisory (leaveCall), and the abuse vector is the desktopAPI.leaveCall IPC message. No further implementation detail (function internals, parameter names beyond leaveCall, internal channel names, or file paths) is provided in the description and is therefore not asserted here.
Exploitation Scenarios
No public PoC is available; the attack chain below is inferred from the vulnerability class (CWE-346 origin validation error) and the details stated in the NVD description. It does not introduce implementation specifics beyond those disclosed.
1) Reconnaissance / target identification An adversary identifies a target user who runs the Mattermost Desktop App (v6.2–6.2.2.0) and connects to more than one server — specifically, a victim that maintains an active call on Server B while also being connected to Server A (which the attacker controls or has script access to). The multi-server scenario is the pre-condition that makes cross-server impact meaningful.
2) Triggering the flaw class
The attacker delivers a desktopAPI.leaveCall IPC message from a renderer context (Server A's view) that should not be authorized to control Server B's call. Two delivery paths are described:
- Malicious/compromised server: the attacker operates or compromises Server A, and its web content issues the IPC call.
- Script access in a connected server view: a user with script execution capability inside a connected server view issues the
desktopAPI.leaveCallmessage.
The leaveCall handler fails to validate the sender, so the cross-origin/cross-server message is accepted.
3) Payload / execution (class level)
This is not a memory-corruption or code-execution bug. The "payload" is the IPC invocation of desktopAPI.leaveCall itself. Because sender validation is absent, the message is honored even though it originates from a context that does not own the target call. No crafted binary payload or memory exploitation is required; the abuse is a logic/authorization failure in IPC message handling.
4) Post-exploitation impact The active call on the other connected server is terminated. This is a denial-of-service against call availability only (no confidentiality or integrity impact). Repeating the message yields recurring call disruption. There is no described path to code execution, credential theft, or lateral movement from this vulnerability alone.
Impact Assessment
- CVSS v3.1 Base: 3.7 (Low) —
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Confidentiality: None. No data exposure is described.
- Integrity: None. No data or configuration modification is described.
- Availability: Low. Call sessions can be forcibly disconnected across server boundaries.
- Scope: Unchanged — impact is confined to the Mattermost Desktop App process.
Affected systems: Desktop endpoints running the Mattermost Desktop App at versions ≤6.2 6.2.2.0 in multi-server configurations. The condition for meaningful abuse (a call active on a different connected server) narrows the practical blast radius.
Business impact: For most organizations this is a nuisance/low-severity availability issue — disrupted voice/call sessions in a collaboration client. The higher-order concern is the trust-model weakness: an Electron IPC trust boundary is not enforced, which is a design smell. While this specific instance is availability-only, the same missing sender-validation pattern in more privileged handlers could carry greater risk; security teams should treat it as a signal to review IPC sender validation broadly.
Detection Guidance
Sigma Rule
title: Mattermost Desktop leaveCall IPC Cross-Server Abuse (CVE-2026-12284)
id: 7b3e1c2a-4d5f-4a91-9c2e-cve202612284
status: experimental
description: Detects abuse of the Mattermost Desktop App desktopAPI.leaveCall IPC handler lacking sender validation, allowing cross-server call disconnection (CVE-2026-12284).
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-12284
author: valtersit.com
date: 2026/01/01
logsource:
category: process_creation
product: windows
detection:
selection_img:
Image|endswith:
- '\\Mattermost.exe'
selection_cmd:
CommandLine|contains:
- 'leaveCall'
condition: selection_img and selection_cmd
fields:
- CommandLine
- ParentImage
- User
falsepositives:
- Legitimate internal diagnostics invoking the desktopAPI leaveCall bridge
level: low
tags:
- attack.t1059
- cve.2026.12284
YARA Rule
rule CVE_2026_12284_Mattermost_LeaveCall_IPC
{
meta:
description = "Detects Mattermost Desktop App artifacts referencing the leaveCall IPC handler abused in CVE-2026-12284"
author = "valtersit.com"
date = "2026-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-12284"
cve = "CVE-2026-12284"
severity = "low"
strings:
$ipc_call = "desktopAPI.leaveCall" ascii wide
$handler = "leaveCall" ascii wide
$mm_app = "Mattermost" ascii wide
$electron = "electron" ascii wide nocase
condition:
uint16(0) == 0x5A4D or uint32(0) == 0x464C457F
and filesize < 200MB
and ( $ipc_call or ( $handler and $mm_app ) )
}
Suricata IDS Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS ( \
msg:"CVE-2026-12284 Mattermost Desktop cross-server leaveCall IPC abuse attempt"; \
flow:established,to_server; \
content:"leaveCall"; http_client_body; nocase; \
content:"desktopAPI"; http_client_body; nocase; \
reference:cve,2026-12284; \
reference:url,nvd.nist.gov/vuln/detail/CVE-2026-12284; \
classtype:attempted-dos; \
sid:202612284; rev:1; \
metadata:created_at 2026_01_01, updated_at 2026_01_01; )
Elastic Detection
process where event.type == "start" and
process.name : "Mattermost*" and
process.command_line : "*leaveCall*"
Splunk SPL Query
index=endpoint OR index=winlogbeat
(process_name="Mattermost.exe" OR Image="*\\Mattermost.exe" OR CommandLine="*Mattermost*")
(CommandLine="*leaveCall*" OR CommandLine="*desktopAPI*")
| stats count min(_time) as first_seen max(_time) as last_seen
values(CommandLine) as cmdline by host, user
| where count > 0
| sort - last_seen
Wazuh OSSEC Rule
<group name="mattermost,cve-2026-12284,">
<rule id="100284" level="5">
<if_sid>60000</if_sid>
<field name="win.eventdata.image">Mattermost\.exe$</field>
<field name="win.eventdata.commandLine">leaveCall|desktopAPI</field>
<description>CVE-2026-12284: Possible Mattermost Desktop cross-server leaveCall IPC abuse</description>
<mitre>
<id>T1059</id>
</mitre>
<group>dos,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 — UNPATCHED. No patch evidence exists from any tracked source, and no workaround is published upstream. The vendor advisory identifier is MMSA-2026-00699; consult Mattermost security advisories for any subsequent fix release. Until a fix is available, treat the following as compensating controls.
1) Immediate mitigations
- Restrict the desktop client to a single trusted server where operationally feasible; the abuse requires a call active on a different connected server, so reducing multi-server usage reduces exposure.
- Treat connecting the desktop app to third-party or untrusted Mattermost servers as high-risk; only connect to servers under organizational control.
- Limit or eliminate extension/script contexts in connected server views (e.g., disable untrusted integrations/plugins) to cut off the "script access" delivery path.
- Monitor endpoint logs for
leaveCall/desktopAPIinvocations per the detection rules above.
2) Patch / upgrade steps
- No fixed version is identified in the provided data. Track Mattermost advisory MMSA-2026-00699 and the Mattermost Desktop App release channel; upgrade the desktop client as soon as a version addressing the sender-validation flaw is published.
- Verify the fix by confirming the
leaveCallhandler enforces sender/origin validation in the release notes or changelog before deployment at scale.
3) Long-term hardening
- Enforce IPC sender validation in all Electron
desktopAPIhandlers: validateevent.senderFrame/ origin against an allowlist and bind call-control operations to the owning server context. This is the root-cause fix class for CWE-346. - Adopt an Electron IPC security standard for the client's renderer-to-main boundaries, applying the principle of least privilege to served web content.
- Include cross-origin/cross-server IPC tests in the client's security regression suite.
- Add continuous detection coverage for unexpected IPC abuse (rules above) and monitor availability anomalies in call sessions.
References
- NVD — CVE-2026-12284: https://nvd.nist.gov/vuln/detail/CVE-2026-12284
- Mattermost Security Advisories — Advisory ID MMSA-2026-00699 (vendor advisory reference cited in the CVE record)
- CWE-346 — Origin Validation Error: https://cwe.mitre.org/data/definitions/346.html
- MITRE ATT&CK — T1059 Command and Scripting Interpreter: https://attack.mitre.org/techniques/T1059/
- FIRST EPSS — not yet scored for this CVE (no EPSS value available at time of writing)
Threat actor / exploit-in-the-wild evidence: None. No public PoC, no Nuclei template, no exploit code, and no CISA KEV listing. Exploitation requires attacker-controlled or script-accessible server content plus a victim in a multi-server call scenario; no campaigns are associated with this CVE in the available data.
Report prepared for valtersit.com. All technical claims are derived strictly from the CVE record provided; where detail was unavailable, the vulnerability class and disclosed identifiers were used rather than inferred implementation specifics.